home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / IM_Install3.adf / ia.lzh / i_addendum
Text File  |  1992-09-10  |  225KB  |  6,196 lines

  1.                              Table Of Contents                             
  2.                              -----------------                             
  3. Page   2 -- Distance Calculator
  4. Page   2 -- Pad Canvas
  5. Page   2 -- Virtual Memory accommodation
  6. Page   3 -- Custom Area Shape Selections
  7. Page   4 -- ANIM OP-5 Generation from Sequencer
  8. Page   5 -- Automatic Custom Display Updating
  9. Page   6 -- Roll Image Geometric Process
  10. Page   7 -- Compose and Process panels reorganized
  11. Page   8 -- Zoom Clip
  12. Page   9 -- Image masks
  13. Page  10 -- Shadows in Compositing
  14. Page  11 -- FilmStrips
  15. Page  12 -- Sequence Processing
  16. Page  17 -- Morphing
  17. Page  25 -- List Requester (ARexx-based capability)
  18. Page  25 -- Load Image as Secondary
  19. Page  25 -- Load Image as Blend
  20. Page  25 -- Load Image as Brush
  21. Page  26 -- Co-ordinates
  22. Page  26 -- Grid
  23. Page  27 -- Adding Noise
  24. Page  27 -- Clip to exact size (F/x)
  25. Page  27 -- X-Specs Over-Under
  26. Page  27 -- X-Specs Interleave
  27. Page  27 -- X-Specs Separate
  28. Page  28 -- F/x User Transforms
  29. Page  28 -- Stretch (Scale, Zoom)
  30. Page  28 -- Map to Range
  31. Page  29 -- Color Balance
  32. Page  29 -- Numeric Area Selection
  33. Page  30 -- Black Balance
  34. Page  30 -- Force Dynamic
  35. Page  30 -- X-Specs Conversion
  36. Page  31 -- Absolute Resample - no anti-aliasing
  37. Page  31 -- Merge with Render from Range
  38. Page  32 -- Additional Render Controls and Capabilties
  39. Page  33 -- Compose with Logical OR
  40. Page  33 -- Compose with Logical AND
  41. Page  33 -- Multiple Blend Technique Application
  42. Page  33 -- Smooth Edge Blending as a Percentage
  43. Page  33 -- Masks
  44. Page  34 -- Color Separations
  45. Page  36 -- CMYK and RGB Recombination
  46. Page  37 -- Genlocking
  47. Page  38 -- DCTV
  48. Page  38 -- Brushes
  49. Page  38 -- Color Definition
  50. Page  39 -- Palette Mapping
  51. Page  39 -- Paint Settings To Disk
  52. Page  40 -- New fill modes
  53. Page  41 -- Dual Range Fills
  54. Page  43 -- DPI operations
  55. Page  43 -- Initialize buffer to Color
  56. Page  43 -- Setup Panel
  57. Page  43 -- Information Panel
  58. Page  43 -- Display Panel
  59. Page  44 -- Dither Off
  60. Page  44 -- Public Interface Modules
  61. Page  56 -- ARexx Port Names
  62. Page  56 -- Render command changed
  63. Page  56 -- Filerequest command changed
  64. Page  56 -- Newbuf command (changed)
  65. Page  56 -- Firecracker-specific manipulation (new commands)
  66. Page  57 -- Finding the mouse location from ARexx (new command)
  67. Page  57 -- coords <show> <top> (new command)
  68. Page  57 -- grid <on> <xgrid> <ygrid> <xoff> <yoff> (new command)
  69. Page  57 -- newasprimary (new command)
  70. Page  57 -- newbuf (changed)
  71. Page  57 -- fromdigiview (changed)
  72. Page  58 -- dome (changed)
  73. Page  58 -- caric (changed)
  74. Page  59 -- imagemaspect (new command)
  75. Page  59 -- loadimask (new command)
  76. Page  59 -- saveimask (new command)
  77. Page  59 -- loadmask (new command)
  78. Page  59 -- savemask (new command)
  79. Page  60 -- backuptoundo (new command)
  80. Page  60 -- coords <show> [showattop] (new command)
  81. Page  60 -- grid <on> <xgrid> <ygrid> <xoffs> <yoffs> (new command)
  82. Page  60 -- autoactivate (new command)
  83. Page  61 -- setpalette (new command)
  84. Page  62 -- DISPLAYMODE (new command)
  85. Page  62 -- pal (new command)
  86. Page  63 -- autoprimary <mode> (new command)
  87. Page  63 -- newbrush <bufferNumber> (new command)
  88. Page  63 -- newblend <bufferNumber> (new command)
  89. Page  63 -- loadassecondary <name> (new command)
  90. Page  63 -- loadasblend <name> (new command)
  91. Page  63 -- loadasbrush <name> (new command)
  92. Page  64 -- render (changed)
  93. Page  65 -- CANCEL command (new command)
  94. Page  66 -- Public Interface
  95. Page  66 -- Installing the PI Modules
  96. Page  66 -- Image Locking
  97. Page  67 -- Unlock Buffer (in Buffer Panel)
  98. Page  69 -- PI Module Code Examples
  99. Page  71 -- Changes List (from v7.00 onwards)
  100.  
  101.                    Information Updated September 8th, 1992
  102.  
  103.        ==============================================================
  104.                            I M A G E M A S T E R
  105.                                for the Amiga
  106.                   (Also applies to F/c and HAM-E versions)
  107.        ==============================================================
  108.  
  109.            Information current to version 9.17 of these programs
  110.  
  111.                        Document Author: Ben Williams
  112.            Software: Barry Chalmers, Ben Williams, Pete Patterson
  113.  
  114.                 +-----------------NOTICE------------------+
  115.                 | This information is copyright 1991,1992 |
  116.                 | Black Belt Systems, ALL RIGHTS RESERVED |
  117.                 | under the Pan-American Conventions.     |
  118.                 +-----------------------------------------+
  119.  
  120.     The latest versions of our image processing software have
  121.     many additional functions which are not described in the manual. This
  122.     document describes those capabilities until a new manual is released.
  123.  
  124.     For developers, please note that we have included much more
  125.     detailed information on the Public Interface; and that the release
  126.     disk does contain a directory with a complete example of how to
  127.     write a PI Module using SAS C.
  128.  
  129.     Until we do formally reprint the manual, additional documentation
  130.     will be provided in on-disk format, ready for printing on your own
  131.     printer. We had originally planned to print continual addendums,
  132.     but there is no way we can keep up with the fast pace of
  133.     development of this program using something as conventional as
  134.     paper.
  135.  
  136.     We will eventually reprint the image processor manual with this
  137.     new information included. Assuming you are a registered user, you
  138.     will be notified at that time what you'll need to do to obtain the
  139.     new paper manual. Make certain you register!
  140.  
  141.     This on-disk documentation has been carefully formatted to be
  142.     printable on virtually any printer providing it has at least 60
  143.     lines per page, is able to print at least 80 columns of text, and
  144.     understands the industry standard "$0C" (decimal 12) character as
  145.     a "form feed".
  146.  
  147.     For a quick update on what changes have been made to the image
  148.     processor, see the changes list at the end of this document.  The
  149.     latest changes are at the end of the list. The features described
  150.     there will be at the beginning of the main descriptions, except if
  151.     there was already a section on that subject.
  152.  
  153.     We hope you enjoy these additional capabilities!
  154.     
  155.  
  156.  
  157.  
  158.  
  159.                                     -1-                                    
  160.     Distance Calculator
  161.     ===================
  162.     This tool is found in the analysis panel. It allows you to
  163.     convert distances between Inches, cm, picas, points,
  164.     Horizontal pixels, and Vertical pixels. This works with the
  165.     distance and area calculation capabilties already available
  166.     in Imagemaster.
  167.     
  168.     Pad Canvas
  169.     ==========
  170.     This tool is found in the resizing and clipping panel, under
  171.     the process main panel. It's function is to pad the selected
  172.     area to a new size, and it allows the user to position the
  173.     clipped and padded area into any one of nine specific
  174.     regions. You could use this to easily center an image in an
  175.     otherwise blank display, for instance. Following is the ARexx
  176.     coding for this operation:
  177.     
  178.     'padcanvas <Xsize> <Ysize> <Position> <NewName>'  ARexx command.
  179.     
  180.     [returns the buffer number]
  181.     
  182.     Xsize and Ysize are the dimensions of the new buffer,
  183.     
  184.     Position is 1 = Top Left
  185.                 2 = Top Center
  186.                 3 = Top Right
  187.                 4 = Middle Left
  188.                 5 = Middle Center
  189.                 6 = Middle Right
  190.                 7 = Bottom Left
  191.                 8 = Bottom Center
  192.                 9 = Bottom Right
  193.     The Following is a working script :
  194.                   
  195.                   /* ARexx example of PADCANVAS operation * /
  196.                   address('IM_Port');
  197.                   'entire';
  198.                   options results;
  199.                   'padcanvas 400 400 5 NewClip';
  200.                   'newcurrent '||result;
  201.                   exit 0;
  202.  
  203.     Virtual Memory accommodation
  204.     ============================
  205.     In the SETUP panel, a button marked "Use Public Memory" is now
  206.     available. This button is (by default) selected; Imagemaster's philosophy
  207.     about memory is that since it needs to get at it's own images, and
  208.     external PI modules also need to, then the image memory should be public.
  209.     
  210.     Some virtual memory managers, in particular GigaMem from Germany, make the
  211.     assumption that memory which is to be virtual is NOT public; they look at
  212.     the type of memory a program asks for and if the memory is not public,
  213.     they will allocate virtual memory. Since VM is very, very useful when
  214.     processing large images, we have provided a way for Imagemaster to NOT
  215.     use public memory. Just release the button and save the config; then
  216.     restart Imagemaster.
  217.  
  218.                                     -2-                                    
  219.     Custom Area Shape Selections
  220.     ============================
  221.     The image manipulation software now has the capability to use an
  222.     unlimited number of custom shapes for selecting areas for processing,
  223.     composition, analysis, painting and so on.
  224.     
  225.     In the area selection panel, you will now find "Load New Shape",
  226.     "Shape From Center", and "Shape From Corner". Until you load a custom
  227.     shape, the other two selections will be ghosted.
  228.     
  229.     Shape files have the extension ".ish" attached to them. We have
  230.     provided a number of them with the program, you may place them
  231.     anywhere in your computer's filesystem. Once you have specified a
  232.     directory to load shapes from, saving the preferences of the image
  233.     manipulation program (from the setup panel) will cause this location
  234.     to be remembered permanently.
  235.     
  236.     You can use any one custom shape at a time. Once one is loaded, it
  237.     stays loaded until you load a new shape. Some that we have provided
  238.     with this release are triangles, pentagons, octagons and stars. You
  239.     can create these shapes yourself, too, if you're handy with graph
  240.     paper and comfortable editing ASCII files.
  241.     
  242.     ".ish" files contain only ASCII text. Examining one will show the very
  243.     simple structure of the files. Blank lines "lift the pen" which allows
  244.     you to make shapes that are multiple - that is, disjoint. Lines which
  245.     begin with an asterisk are comments; these are ignored by the image
  246.     manipulation software. Lines with co-ordinates on them are used as
  247.     active point locations for the shape. We suggest you examine the
  248.     "Triangle.ish" file, as it is very easy to understand. There is also
  249.     an "example.ish" file which is designed to be instructive.
  250.     
  251.     When drawing with a custom shape, you can reposition it by pressing
  252.     the right mouse button. Note that shapes from center act differently
  253.     than shapes from corner. Note also that changing the direction you
  254.     move the mouse when you drag out the shape will reverse (or flip, or
  255.     both) the shape you are drawing.
  256.     
  257.     Shapes can be used in the line drawing tools inside the paint portion
  258.     of the program --- you may find this a fine aid to construction of
  259.     certain types of drawings. They may also be used with the morph tools.
  260.     
  261.     If you design your own shape files, please feel free to upload them to
  262.     CompuServe or to our company support BBS, where other users of our
  263.     software will be able to benefit from them. Our support BBS number is
  264.     (406) 367-2227.
  265.  
  266.                                  ----------
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.                                     -3-                                    
  278.     ANIM OP-5 Generation from Sequencer
  279.     ===================================
  280.     We have added the capability to generate Amiga animations directly
  281.     from within the image manipulation software. Both the sequencer and
  282.     the morph generator can do this.
  283.     
  284.     You must install the latest PI Modules from the disks (or the telecomm
  285.     distribution archive) for this to work.
  286.     
  287.     Whenever you wish to generate anims, you simply set up three of the
  288.     four script entries in the sequencer or the morph generator with the
  289.     names of three predefined scripts. The script entries and the exact
  290.     contents are as follows:
  291.     
  292.           Name Of Script            Exact Contents
  293.         ------------------          --------------
  294.         Opening Script              rxpi:animwr1.rexx
  295.         Pre-Render Script           
  296.         Post-Render Script          rxpi:animwr3.rexx
  297.         Closing Script              rxpi:animwr4.rexx
  298.     
  299.     Note that there is nothing specified for the "Pre-Render" script. This
  300.     is intentional. For almost all cases of morphing, no Pre-Render script
  301.     is required. For almost all cases of sequencing with the exception of
  302.     batch rendering, you will want to use your own, custom script to
  303.     specify what effects will occur during the sequence.
  304.     
  305.     For instance, the example scripts given later on in this document all
  306.     belong in the Pre-Render script entry. If you use this with this anim
  307.     generation capability, then all four script entries will be used. You
  308.     don't have to worry about the three we provide; they will work very
  309.     well with the others described here.
  310.     
  311.     Once you have placed the scripts named above in the proper three
  312.     entries, rendered output from the sequencer or morph generator will go
  313.     directly to ANIM format. You must remember to select a render mode
  314.     appropriate for the animation, as well as a render output size and so
  315.     forth - this will ensure that the animation is the type you want it to
  316.     be. Note that some animation players require the use of a constant
  317.     palette, or will simply look better if you use a constant palette.
  318.     
  319.     For the technically minded:
  320.     ---------------------------
  321.     The four scripts now available in the sequencer allow you to have
  322.     total control over the disposition of the files generated. This ANIM
  323.     generator is a good example of what you can do. All you need to know
  324.     is that the Opening script runs once, before all other activity; the
  325.     pre-render script runs just before each frame is rendered or saved;
  326.     the post-render script runs just after each frame is rendered or
  327.     saved; and the closing script runs once after all frames have been
  328.     generated.
  329.     
  330.     You can use these four "launches" to completely control any external
  331.     disposition of the generated files. Output to film recorders or
  332.     single-frame video recorders are obvious applications. The
  333.     possibilities are endless, and the flexibility is unlimited.
  334.  
  335.                                  ----------
  336.                                     -4-                                    
  337.     Automatic Custom Display Updating
  338.     =================================
  339.     With version 9.09, we have added the capability to automatically lauch
  340.     a script every time the software re-displays the current buffer to the
  341.     monitor.
  342.     
  343.     This capability is meant to be used with pre-prepared scripts and
  344.     commands provided by Black Belt or other developers. What it does
  345.     for you is allows you to view on a different display than the one
  346.     you normally use (for instance, the Amiga graphics output when using
  347.     Imagemaster), the current condition of the primary image,
  348.     automatically.
  349.     
  350.     We have provided the first of these automatic update display modules
  351.     for Impulse's FC24 board. If you have an FC24, and are using it on a
  352.     separate monitor, simply place...
  353.     
  354.             rxpi:imfc24.rexx
  355.     
  356.     ...in the entry entitled "redraw script" inside the display panel.
  357.     (You must use the imfc24 script from the latest PI Module
  358.     distribution; earlier versions of the PI Module are not capable of
  359.     this). Once this is set, press the "Call Redraw Script" button and
  360.     you're ready to go. From now on, the image you're working on will be
  361.     maintained on the independant FC24 monitor as well as on the Amiga
  362.     (or HAM-E) display. This only works in the standard Imagemaster.
  363.     
  364.     In the provided imfc24.rexx script, there are several variables at the
  365.     beginning of the script that may be set by the user to control the
  366.     display resolution used on the FC24 during automatic updates.
  367.     
  368.     For Developers:
  369.     ---------------
  370.     Using this new capability is simple. The scripts which are called from
  371.     the "redraw script" entry are called with the following 5 parameters:
  372.     
  373.         "JACKIN" - structure pointer (in ASCII Hexadecimal)
  374.             "X1" - leftmost point of the area which needs redrawing
  375.             "Y1" - topmost point of the area which needs redrawing
  376.             "X2" - rightmost point of the area which needs redrawing
  377.             "Y2" - bottommost point of the area which needs redrawing
  378.     
  379.     An ARexx script that uses these might look like...
  380.     
  381.         /*      Sample Automatic Display Script For Developers       */
  382.         parse arg jacker x1 y1 x2 y2;              /* get parameters */
  383.         address command cmpi:mydupdate jacker x1 y1 x2 y2; /* do it! */
  384.         'finish';       /* Very Important - tells us we can continue */
  385.     
  386.     ...here, the ARexx variables "jacker", "x1", "y1", "x2" and "y2" are
  387.     automatically set by our software when we call your script. You can
  388.     then use the data in these variables to instruct your display control
  389.     program what it is it needs to do. Here, we're calling a hypothetical
  390.     program called "mydupdate" which would take these variables and then
  391.     deal with the display it is written to handle. Finally, we use
  392.     'finish'; to tell our software it may continue processing.
  393.     
  394.                                  ----------
  395.                                     -5-                                    
  396.     Roll Image Geometric Process
  397.     ============================
  398.     This operation allows you to roll an image in the horizontal, vertical
  399.     or both directions. Normal rolling goes down and right; negative roll
  400.     amounts cause rolling to go left or up.
  401.  
  402.     There are three roll modes. The first is "wrap", where the portion of
  403.     the image that has rolled off of the edge re-appears on the opposite
  404.     edgein the newly opened area. The second is "fill with edge pixels",
  405.     where the pixels rolled off the edge are lost and the incoming edge is
  406.     filled with a duplicate of the receeding edge of the image. The third
  407.     is "pad with color", where the pixels rolled off the edge are lost and
  408.     the incoming edge is filled with a solid color you select using "set
  409.     foreground color" in the process panel.
  410.  
  411.     This function is located in the Geometric Operations panel, which
  412.     itself is located under the main Process panel.
  413.     
  414.     ARexx Operation
  415.     ---------------
  416.     rollimage <xamount> <yamount> <mode>
  417.  
  418.     parameters <required> [optional] :
  419.     
  420.         <xamount> - a positive or negative value for horizontal roll
  421.         <yamount> - a positive or negative value for vertical roll
  422.            <mode> - 0=wrap, 1=edge fill, 2=color fill.
  423.  
  424.     effects:
  425.     
  426.         ARexx variable RC is set to zero if no problems, nonzero if the
  427.         user presses "CANCEL" while the effect is being generated
  428.  
  429.     example of use:
  430.     
  431.         /* simple test script for 'rollimage' */
  432.  
  433.         address 'IM_Port';        /* allows us to talk to our software */
  434.         'rollimage' 10 10 0;         /* do the roll in edge wrap mode. */
  435.         if rc ~= 0 then say "User Pressed Cancel!";        /* informer */
  436.         exit 0;                                           /* all done! */
  437.  
  438.                                  ----------
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.                                     -6-                                    
  455.     Compose and Process panels reorganized
  456.     ======================================
  457.     With version 9.00, a major reorganization of the image processing and
  458.     composition control panels was put into effect.  This was done for two
  459.     main reasons. First, the process panel and the F/x panel, a panel of
  460.     other process operations, had both become so loaded with functions
  461.     that it was quickly becoming a significant effort to locate a
  462.     particular tool - especially if that tool wasn't one you used often
  463.     (and so were not quite familiar with where it was placed).  The
  464.     compose panel, though not nearly as heavily loaded, suffered from a
  465.     similar problem. The new panel organization, while quite different from
  466.     the organization present in versions 1.00 through 8.02, is easier to
  467.     learn and easier to use because it is more highly structured.
  468.  
  469.     The second reason comes about because the image manipulation software
  470.     does not contain pre-drawn buttons (gadgets). Instead, it generates
  471.     the buttons and other controls needed for a particular panel only when
  472.     it is time to open that panel, and then discards them after that panel
  473.     has been closed. We designed it this way because it saves many
  474.     hundreds of thousands of bytes of ram during operation, and also
  475.     reduces the main program size on disk by the same amount. These are
  476.     both significant benefits; however, when a large panel needs to be
  477.     generated, the time involved to create the control images and other
  478.     items for display can become significant. The new organization of the
  479.     panels results in more control panels, all of which contain fewer
  480.     controls... so the individual panels are generated more quickly.
  481.     
  482.     In addition to the major panel rework, other user interface changes
  483.     were also made to help ease the program's operation. The "info" panel
  484.     is now accessable directly from the main panel; the render controls in
  485.     the File I/o panel have been subtly re-arranged to be easier to use;
  486.     the program's autoactivation capabilities have been steamlined for
  487.     more efficient operation; the font list requester was widened for
  488.     easier use with longer font names; you can now use the 2.0 (ASL) file
  489.     requester if you prefer, and the sequence processor can now sort the
  490.     file list for you.
  491.  
  492.     The following lists show the general organization of the new panels;
  493.     the number following each new panel represents the number of basic
  494.     tools in each. In many cases, these tools lead to still other tools
  495.     and effects, totalling many hundreds of different operations.
  496.  
  497.     Process --------- Standard Adjustments          ( 22 )
  498.                       R,G,B Corrections             (  9 )
  499.                       Filters                       ( 21 )
  500.                       Geometric Transformations     ( 19 )
  501.                       Special Effects               ( 33 )
  502.                       Analysis                      (  8 )
  503.                       Resizing and Clipping         (  9 )
  504.                       Set Blend                     ( 10 )
  505.  
  506.     Compose --------- Linear Compositions           (  8 )
  507.                       Color Keyed Compositions      (  8 )
  508.                       Color Recombinations          (  7 )
  509.                       Algebraic Compositions        (  4 )
  510.                       Logical Compositions          (  3 )
  511.                       Special Compositions          (  7 )
  512.                       Composition Controls          (  5 )
  513.                                     -7-                                    
  514.     Zoom Clip
  515.     =========
  516.  
  517.     This operation allows you to zoom in a specific amount "into" the
  518.     image in the primary buffer. It is located in the Process, Resizing
  519.     and Clipping panel.
  520.  
  521.     The intention is to allow zooms within animation sequences to be
  522.     generated in a natural manner. You can specify the percentage to zoom
  523.     in, and also the output resolution for the resulting clip. Note that
  524.     the output resolution will always default to the same resolution as
  525.     the current primary image.
  526.  
  527.     Remember that the higher the resolution of the source image, the more
  528.     detail will result in the zoom. Extreme magnifications, while smooth,
  529.     will very likely not appear realistic. We suggest that for extreme
  530.     zoom effects, you may wish to generate several sequences using
  531.     different resolution sources.
  532.  
  533.     ARexx Operation
  534.     ---------------
  535.     zoomclip <xzoom> <yzoom> <xc> <yc> <name> [xs] [ys]
  536.  
  537.     parameters:
  538.         <xzoom> - required Percentage from 101% to 2000%
  539.         <yzoom> - required Percentage from 101% to 2000%
  540.         <xc> ---- required Horizonal (X) Center, in pixels
  541.         <yc> ---- required Vertical (Y) Center, in pixels
  542.         <name> -- required Name for the newly created clip
  543.         [xs] ---- optional (X) Size for newly created clip
  544.         [ys] ---- optional (Y) Size for newly created clip
  545.  
  546.     effects:
  547.         ARexx variable RC is set to zero if no problems, nonzero for error
  548.  
  549.         if OPTIONS RESULTS is in effect, returns ARexx variable
  550.         "RESULT" as the number of the newly created clip.
  551.  
  552.     example of use:
  553.         /* test script for 'zoomclip' in sequence processor */
  554.  
  555.         options results         /* let image processor return results */
  556.         'tween 101 200';    /* get value for this frame, 101% to 200% */
  557.         Z = result;                     /* copy to variable named "Z" */
  558.         'zoomclip' Z Z 100 100 "zoomed image" 320 200; /* do the zoom */
  559.         'finish';              /* tell image processor script is done */
  560.  
  561.                                  ----------
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.                                     -8-                                    
  573.     Image masks
  574.     ===========
  575.     
  576.     General
  577.     -------
  578.     In the image processor, images may have a local mask. This mask is
  579.     permanently associated with the image, and its purpose is to define
  580.     the usable (valid) region of the image. For instance, if you create a
  581.     text object image, there is a mask that is the shape of the text which
  582.     "masks off" the rest of the image area, which is actually rectangular.
  583.     
  584.     In addition, when you specify a region of an image you want to do
  585.     something to with any of the region selection tools, you are creating
  586.     a temporary mask within which the effect is to occur. In normal
  587.     operation, if the image has a local mask, both the local mask and the
  588.     temporary main (area selection) mask are used to specify the region to
  589.     be affected.
  590.     
  591.     Loading and Saving Masks
  592.     ------------------------
  593.     You may load,and save masks from and to both the main (area
  594.     selection) and local (validation) masks. In addition, you can
  595.     specify logical operations to occur when you load a mask; you can
  596.     'or' it with the currently existing mask, replace the current mask
  597.     with it, and so on.
  598.     
  599.     Note that there are corresponding ARexx commands for loading and
  600.     saving both masks.
  601.     
  602.     Virtual Resolution
  603.     ------------------
  604.     Masks are saved in the resolution of the image they are associated
  605.     with, so this is the limit of detail you can save. When masks are
  606.     loaded, however, they are scaled to the same size as the current
  607.     image. This "virtual" resizing allows you to use a mask as a cookie-
  608.     cutter on any size image simply given that you've defined it the way
  609.     you want to.
  610.     
  611.     One example of this might be to create a text object, and then save
  612.     the mask. Now, reload that mask as the image mask using replace, and
  613.     the only parts of the image that are valid are those regions within
  614.     the shapes of the letters. This is a very powerful capability.
  615.     
  616.     Masks from ARexx
  617.     ----------------
  618.     From ARexx, you can use masks with the sequence processor very handily.
  619.     Say you have a series of images within which you wish to affect the same
  620.     relative region. Load one of the images, and carefully define the area
  621.     to be affected. Save the main mask. Now, in the sequence processing
  622.     script, you can reload that mask using REPLACE mode and each image
  623.     processed in the sequence will be affected in the same region.
  624.     
  625.     The ARexx commands are 'loadmask', 'savemask', 'loadimask' and
  626.     'saveimask'. All are explained later in this document. The load commands
  627.     have logical variations; and, or, xor, subtract, replace.
  628.     
  629.                                  ----------
  630.  
  631.                                     -9-                                    
  632.     Shadows in Compositing
  633.     ======================
  634.  
  635.     General
  636.     -------
  637.     Shadows can be generated as an additional effect during
  638.     compositing operations. There are two controls in the Compose
  639.     panel that facilitate this.
  640.  
  641.     The "switch" that controls whether a shadow is generated is called
  642.     "Shadow Enable". When this is selected, a shadow is generated.
  643.  
  644.     How the shadow appears is controlled by the panel that appears
  645.     when you select "Shadow Control" from the compose panel. In this
  646.     panel you will find the means to set the direction of the shadow
  647.     to any angle, its intensity (how dark the shadow appears) and the
  648.     length of the shadow.
  649.  
  650.     The angle should be set to the opposite direction that you want
  651.     the illumination to appear to be coming from. '0' degrees is
  652.     straight up, and as the angle increases, the shadow proceeds
  653.     clockwise from that position. 1/4 of a turn is 90 degrees.
  654.  
  655.     Shadow intensity is least (lightest) when it is set to zero, and
  656.     most intense (darkest) when it is set to 255. Note that if you
  657.     are using any blending techniques, the shadow will also obey the
  658.     blend parameters; a partially transparent object will produce a
  659.     lighter shadow than a non-transparent object. The shadow will
  660.     follow the transparency curve of the object exactly unless you
  661.     specifically tell it not to.
  662.  
  663.     The length of the shadow is specified in pixels, and it essentially
  664.     defines the distance that the shadow position is offset from the
  665.     position you placed the original item being composited.
  666.  
  667.     This capability allows you to create shadows with realistic soft edges
  668.     easily. One technique you might like to try is setting a blend with very
  669.     soft edges, and with shadow on, compositing the images together. Next,
  670.     turn the shadow off, and the blending off; now re-composite the images
  671.     using "Previous Region". This will generate a perfect shadow with soft
  672.     edges, yet the composed image will be sharp. This effect duplicates what
  673.     happens when an object is removed a significant distance from the
  674.     surface where the shadow is cast.
  675.  
  676.                                  ----------
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.                                    -10-                                    
  691.     FilmStrips
  692.     ==========
  693.  
  694.     General
  695.     -------
  696.     The image processor's film strip capability provides you with
  697.     two distinct capabilities;
  698.  
  699.         - you can have a visual record of what you've been doing
  700.         - you can animate the contents of a filmstrip as a test
  701.  
  702.     The filmstrip contents may be saved and reloaded; you can
  703.     view the filmstrip in interlace or non-interlace; you can
  704.     manually insert frames or let the image processor do it for
  705.     you, automatically; you can use a VCR-style control panel to
  706.     go anywhere in the filmstrip; and you can set the filmstrip
  707.     to any length you like (based upon how much memory you have,
  708.     of course).
  709.     
  710.     You can choose between either a B&W filmstrip, or a color
  711.     filmstrip. There is a tradeoff here; B&W filmstrips are very
  712.     good for detail, but you can't see any color effects that may
  713.     be important to you. Color filmstrips, while very good at
  714.     generally representing color, are very rough by comparison
  715.     due to the dithering techniques that must be used to make
  716.     full color images from a 16-color preset Amiga palette. Color
  717.     filmstrips work much better as an interlace filmstrip since
  718.     there are twice as many pixels available for the dither to
  719.     use. If you use a color filmstrip and want it to be viewed
  720.     with the supplied viewer (FilmView), then you'll need to
  721.     ensure that version 1.01 of the viewer is being used (this is
  722.     supplied on the current release disks).
  723.     
  724.     When you change the length of the filmstrip, if the new length is longer
  725.     than the previous length, the filmstrip contents are retained.  If the
  726.     new length is shorter, then any frames which were "deeper" into the
  727.     filmstrip than its new length will be lost.
  728.  
  729.     You can change the animation playback from "pong" to "loop"; this will
  730.     come in handy often. Reverse animation is also available.
  731.     
  732.     Other controls available include insertion, deletion and swapping of
  733.     frames. Frames are numbered to facilitate these operations.
  734.  
  735.     You'll find the filmstrip controls in the DISPLAY, Morph and Sequence
  736.     panels. Filmstrip allocation (creation) is performed only in the display
  737.     panel.
  738.  
  739.                                  ----------
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.                                    -11-                                    
  750.     Sequence Processing
  751.     ===================
  752.  
  753.     General
  754.     -------
  755.     In the File I/o panel, the control "Set Up Multi-frame Sequence"
  756.     provides access to the sequence processor. This is a capability
  757.     that allows you to select a group of images to be loaded (or you
  758.     can select a single image to come from the secondary buffer),
  759.     processed, and optionally resaved in either 24-bit IFF format or
  760.     rendered to another display mode - or both.
  761.  
  762.     We strongly suggest you have the FilmStrip operating when you do
  763.     sequence processing. This will allow you to see each frame as it
  764.     is processed as a history, which is very enlightening. Also, if
  765.     you elect to run the sequence without generating any output, you
  766.     can use the filmstrip to examine the general effect to see if it
  767.     was what you wanted.
  768.     
  769.     Processing is done using a very simplified form of an ARexx
  770.     script, which can be as simple as three lines of text, or as
  771.     complex as you like. The script you choose is executed once for
  772.     each frame in the sequence - we'll show you how to do it here.
  773.  
  774.     It is very important that you take the time to look at the example
  775.     scripts presented here, even if you are NOT an ARexx user; we have
  776.     designed this capability so that you can use it VERY easily and if
  777.     you elect to ignore it you're going to be shooting yourself in the
  778.     foot - no kidding.
  779.  
  780.     Brief Description
  781.     -----------------
  782.     Essentially, multi frame sequence processing is broken up into two
  783.     stages. First, you need to prepare a simplified ARexx script that
  784.     will process your images in the fashion you desire. Second, you use
  785.     the sequence processing control panel to select a set of images to
  786.     apply these effects to; you also select what you want done with the
  787.     results - save them as IFF, render them to a particular output mode,
  788.     or discard them (this last is useful to test scripts to see if they
  789.     have the desired effect).
  790.  
  791.     As we mentioned previously, we strongly suggest you leave the
  792.     filmstrip turned on. One of the most revealing things you can do
  793.     to a sequence to see if it's what you wanted is to animate it
  794.     using the filmstrip. You can see if the results are smooth enough;
  795.     if not, you should use more frames. Perhaps you'll determine that
  796.     you can get away with fewer frames. Even if you got everything
  797.     perfect on the first try, it's nice to have that confirmed by the
  798.     filmstrip animation.
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.                                    -12-                                    
  809.     We describe two example ARexx scripts in painstaking detail
  810.     further on in this document; we'll begin with a description of the
  811.     options available to you in the sequence control panel.
  812.  
  813.     Sequence Control Panel
  814.     ----------------------
  815.     This control panel presents you with two lists, one on each side
  816.     of the display. The list on the left acts like a file requester;
  817.     you use it to navigate through the Amiga's filesystem and choose
  818.     files. Each file you choose from the left hand list is placed into
  819.     the right hand list, which is the list of files that will be
  820.     processed for this sequence. Below the lists are the name of the ARexx
  821.     script that will be used to process each of the selected images, and
  822.     the number of image files that have been selected for processing.
  823.  
  824.     Finally, at the bottom of the display are a set of controls which
  825.     allow you to set up various items used in the sequence processing.
  826.     Here is a description of each control:
  827.  
  828.     "Set Path" allows you to set the path where the list requester
  829.     will begin looking for image files.
  830.  
  831.     "Parent" causes the left list requester to change directories to
  832.     the parent directory of where it is currently located.
  833.  
  834.     "Set Script" allows you to specify up to four ARexx scripts to be used
  835.     to process the sequence of images.
  836.  
  837.     "Save List" and "Load List" allow you to save and reload the
  838.     right-hand list of images for later use.
  839.     
  840.     "Delete Entry" allows you to remove a particular image file from
  841.     the right hand list after clicking on that entry.
  842.  
  843.     "Film" provides access to the filmstrip controls.
  844.  
  845.     "Run List" opens a new control panel where you specify the output
  846.     filenames for the results of the sequence process operation; you
  847.     can cancel out of this panel if needed, or you can execute the
  848.     operation there. You can also use the secondary or primary buffer
  849.     as the source for the operation, repeatedly.
  850.  
  851.     "Done" exits the sequence processing panel without actually doing
  852.     a sequence.
  853.  
  854.     ARexx Script Particulars
  855.     ------------------------
  856.     There is one new command which must be used at the end of any
  857.     script that is built for multi-frame processing. This command is
  858.     'finish'; It tells the image processor that all operations in the
  859.     script have completed, so another image may be loaded (or the
  860.     operation can terminate, if the last frame has been processed. If
  861.     you neglect to include the 'finish' command, only the first frame
  862.     of the sequence will be processed.
  863.  
  864.  
  865.  
  866.  
  867.                                    -13-                                    
  868.     In addition to the 'finish'; command, we have provided the
  869.     'tween'; command. You'll use it in scripts where you want various
  870.     parameters to change from frame to frame. We'll show you how to
  871.     use this command a little further on.
  872.  
  873.     For the user who really wants to get into the "nitty gritty" of
  874.     working with these scripts, two arguments are always passed to the
  875.     ARexx script which you may use if you like. The first argument is
  876.     the current image number. In other words, if you have selected 20
  877.     images to be processed, and this is the third image, then this
  878.     argument will be "3". For a sequence of 20 images, the argument
  879.     will go from 1 to 20; it will never be zero. The second argument
  880.     passed is the total number of frames. In the example we explained
  881.     just previously, the second argument would be 20. These two
  882.     arguments can be used to control anything you can imagine, but
  883.     require you to be fairly sophisticated in your script-writing. For
  884.     the vast majority of users, the 'tween'; command will handle
  885.     everything you need to do.
  886.  
  887.     Constant Effects Across Multiple Frames
  888.     ---------------------------------------
  889.     Here is a very simple example of how to apply a particular set
  890.     (constant) effect across a sequence of images.
  891.  
  892.         /* SimpleSeq.rexx - minimal demonstration script */
  893.         'entire';             /* specify do entire image */
  894.         'contrast 50';        /* 50% contrast increase   */
  895.         'finish';             /* mandatory final command */
  896.  
  897.     SimpleSeq.rexx is a good example showing just how really simple a
  898.     script can be. It selects the region to be affected (the entire
  899.     image), applies a 50% contrast to that region, then informs the
  900.     image processor that it may proceed to the next image in the
  901.     sequence. If you select 60 images, all of them will have this
  902.     exact amount of increased contrast.
  903.  
  904.     Variable Effects Across Multiple Frames
  905.     ---------------------------------------
  906.     We'll look at how you might gradually apply the contrast effect
  907.     over time now, using the 'tween'; command. The example script here
  908.     has only three more lines than the example that showed you how to
  909.     apply a constant level of contrast; this clearly shows how easy it
  910.     is to create extremely powerful, perfectly sequenced effects
  911.     automatically. If you've been avoiding ARexx, it's time to have
  912.     some real fun!
  913.  
  914.     Here is the actual script, ready to use:
  915.  
  916.       /* Contrast.rexx - shows how to get varying effects across frames    */
  917.       options results;     /* this tells IM, IMFC or IP to return "result" */
  918.       'entire';            /* select entire image as operation target      */
  919.       'tween 0 100';       /* get "tween" value into autovariable "result" */
  920.       'contrast '||result; /* apply the tweened amount, changing smoothly  */
  921.       'finish';            /* mandatory final command - end of script      */
  922.  
  923.                  <detailed explanation provided on next page>
  924.  
  925.  
  926.                                    -14-                                    
  927.     Here is a line by line explanation of the script.
  928.  
  929.     /* Contrast.rexx - shows how to get varying effects across frames */
  930.     --------------------------------------------------------------------
  931.     This line is an ARexx "comment". It serves two purposes here.
  932.     First, the ARexx language says that the first line of an ARexx
  933.     script MUST be a comment - so you have to at least put the comment
  934.     delimiters in the first line, shown here...
  935.                        /*    */
  936.     ...or ARexx won't even attempt to execute the script. The other
  937.     purpose is to inform you what the script is about. After all,
  938.     since you are required to put the comment there, it might as well
  939.     be useful, eh? Comment lines may appear anywhere and have no
  940.     effect upon the actual operation of the script.
  941.  
  942.     options results;
  943.     ----------------
  944.     This is a command to the ARexx language itself which informs any
  945.     program receiving a command (the image processor, in this case)
  946.     that it is ok to return a value if a macro command is executed
  947.     that should return one. If this line is not present, then you
  948.     won't get a value back from the image processor. We need it here
  949.     because the 'tween' command does need to return a result to the
  950.     script (see the next explanatory paragraph for details on this).
  951.  
  952.     'entire';
  953.     ---------
  954.     This is a command to the image processor which tells it that the
  955.     region we want to affect by the next process we execute is the
  956.     entire image. You might have used 'oval' or 'rect' here instead,
  957.     if you just wanted to contrast a portion of the image.
  958.  
  959.     'tween 0 100';
  960.     --------------
  961.     This command to the image processor is the key to easy variable
  962.     processes over multiple frames. What it is saying is that over the
  963.     course of this sequence, the starting value (for the first frame
  964.     processed) is to be "0"; and the ending value (for the last frame
  965.     processed) is to be "100". The tween command uses this information
  966.     with internal information the image processor maintains about how
  967.     many frames there are and which one is being processed now, to
  968.     determine the appropriate value to return for this particular
  969.     frame in the sequence - no matter what frame it is. The 'tween'
  970.     command can start with a low value and go to a high one, or vice-
  971.     versa. It can also handle negative numbers. For operations where
  972.     there are multiple parameters, just use multiple 'tween' commands
  973.     and put the "result" from each into it's own variable. The 'tween'
  974.     command is simple, and very powerful.  Here are some examples...
  975.     
  976.         'tween -100 100'; var1 = result;
  977.         'tween 100 0'; var2 = result;
  978.         'tween -75 50'; var3 = result;
  979.     
  980.     ...now var1, var2 and var3 could be used later as different
  981.     parameters for a script that needed several different values.
  982.         
  983.                      <explanation continued on next page>
  984.  
  985.                                    -15-                                    
  986.     'contrast '||result;
  987.     --------------------
  988.     This is the actual command to the image processor which instructs
  989.     it to apply a certain amount of contrast to the image of the
  990.     sequence that is currently being processed. The image processor's
  991.     contrast command can take values from -100 to 100, and the
  992.     variable "result" contains a value within these limits, which we
  993.     got from the 'tween' command.
  994.     
  995.     Note that the variable "result" is set whenever you call ANY
  996.     command to the image processor after executing "options results",
  997.     so it is constantly being reset to a new value. Often, the best
  998.     course is to copy the value in "result" to a new variable, like
  999.     we showed you in the explanation for the 'tween' command. Here's
  1000.     another example...
  1001.     
  1002.         'tween -25 25'; tweenvalue = result;
  1003.     
  1004.     ...where the semicolons serve to separate ARexx commands. The next
  1005.     command changing the contents of "result" won't unintentionally
  1006.     lose you your returned value here. In the script example, because
  1007.     we use "result" immediately after we get it from the 'tween'
  1008.     command, we don't need to copy it, it's still got the value we
  1009.     wanted in it. The dual vertical bars are a concatination operator;
  1010.     they "glue" text together. Let's say that the variable "result"
  1011.     contains the number "25". The result of this line will be sent to
  1012.     the image processor and it will look like this...
  1013.  
  1014.             contrast 25
  1015.  
  1016.     ...which is exactly what you want.
  1017.  
  1018.     'finish';
  1019.     ---------
  1020.     This line tells the image processor that the script is complete.
  1021.     The sequence processing then knows to go on and load the next
  1022.     frame to be worked upon, or to terminate if the last frame has
  1023.     been completed.
  1024.     
  1025.     Note that the scripts described here belong in the "Pre-Render" script
  1026.     entry. The other three script entries are used to control more complex
  1027.     batch operations.
  1028.  
  1029.                                  ----------
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.                                    -16-                                    
  1045.     Morphing
  1046.     ========
  1047.  
  1048.     General
  1049.     -------
  1050.     This is a compose operation. Morphing is the process of combining two
  1051.     images to form a third image, using geometric (positional), timing and
  1052.     color information from both source images. Usually, it is also taken to
  1053.     mean the generation of a sequence of images which provide a continuous
  1054.     (or as nearly so as possible) change from one image to the other. This
  1055.     effect is the basis for many current video and cinematic scenes of
  1056.     startling content. You'll find it under "Special Combinations" in the
  1057.     Compose Panel. You can only use it if you have both a primary and a
  1058.     secondary image loaded.
  1059.  
  1060.     The Morph capability implemented in our image processor provides the
  1061.     abilities to generate individual frames as needed, or a sequence of
  1062.     frames to your specifications. You have excellent control over the three
  1063.     most important factors in the process:
  1064.  
  1065.         1 - The geometry transform information (positional changes)
  1066.         2 - The colorimetry transform information (transparency changes)
  1067.         3 - The velocity of individual positional changes (rate of change)
  1068.  
  1069.     The first, geometric control is provided by the user specifying
  1070.     "control points" on both of the source images. To understand what this
  1071.     means, let's consider a simple example.
  1072.  
  1073.     Say you wish to apply the morph process (we'll simply call this
  1074.     "morph" from now on) to a man's face and a woman's face. The images
  1075.     are quite different; the man is swarthy and has a wide, solid face,
  1076.     while the woman is elegantly slim, with high cheekbones and has an
  1077.     oriental cast to her eyes. A good beginning for working on these two
  1078.     images is to start with what the images have in common; what the
  1079.     viewer will "naturally" assume are features that are "the same".
  1080.     Examples of this are eyes, eyebrows, nose, mouth, and ears. For the
  1081.     eyes, you might place control points on the start image at the corners
  1082.     of the eyes. Note that points automatically appear in the same
  1083.     location on the other image. Now, you move the points on the other
  1084.     image so that these points are also in the corners of it's eyes.
  1085.  
  1086.     What you have done is told the image processor that you expect these
  1087.     two locations - the eye corners - to remain "attached" to each other
  1088.     throughout the morph process. You'll continue to apply control points
  1089.     to the pupils of the eyes, across the eyebrows, the lips, the ears,
  1090.     the edges of the face and so on. You may use as few as ten or so
  1091.     points, or you may use several hundred. The more you use, the more
  1092.     precisely controlled the morph effect will be.
  1093.  
  1094.     Note that you can save your control point sets; you should do this
  1095.     often, so as to prevent the loss of your work in case of a system
  1096.     failure of any kind.
  1097.  
  1098.     The best way to learn how to morph is to try a few. We strongly
  1099.     suggest that you start with two faces; and that you keep the initial
  1100.     morphs very small, about 96x60 or 48x30. Morphing is a computationally
  1101.     intensive process, and generating each frame takes considerable time.
  1102.  
  1103.                                    -17-                                    
  1104.     Here's a useful hint. When you're experimenting, set the number of
  1105.     frames to 20, and then generate only frame 10. Use a linear
  1106.     transparency curve.  This will show you what will occur for a morph
  1107.     that is 50% complete; that is when both images are maximally merged
  1108.     with each other. If you have missed something important, it will
  1109.     likely show more at this time than any other.
  1110.  
  1111.     The morph capability is extremely open-ended; experimentation can
  1112.     produce outstanding results.
  1113.  
  1114.     We have found that you typically need between 50 and 150 control
  1115.     points to create the most effective morph results. Fewer points tend
  1116.     to leave areas "uncontrolled", more result in longer computation times
  1117.     and not much difference in output quality. By all means experiment,
  1118.     though - you may achieve effects we did not expect, which please you.
  1119.  
  1120.     Following are specific descriptions of the items available to you as
  1121.     part of the image processor's current morphing capabilities.
  1122.  
  1123.     Elements of the Morph Display
  1124.     -----------------------------
  1125.     At the top left, the source image is presented. This is the image that
  1126.     has the most impact upon the morph at the beginning of the sequence
  1127.     (when using the default transparency curve). At the top right, the
  1128.     destination image is presented. This is the image that has the most
  1129.     impact upon the morph at the end of the sequence.
  1130.  
  1131.     In the center bottom portion of the display is the point vector
  1132.     window. This window presents you with the paths over time that the
  1133.     points you have defined will travel; and where they will be for the
  1134.     particular frame being generated (during the actual morph process).
  1135.  
  1136.     At the right center is a small frame where postage-stamp sized images
  1137.     are presented during sequence generations. This lets you know where
  1138.     you are, so to speak, when the morph is operating.
  1139.  
  1140.     At the left center, some text is presented which tells you how many
  1141.     control points are currently defined.
  1142.  
  1143.     Finally, at the bottom is a control panel used to control major
  1144.     operations and modes within the morph generation.
  1145.  
  1146.     Add Points
  1147.     ----------
  1148.     When this button is depressed, you can add points to the source (left)
  1149.     image. When you add a point, it will also appear (in the same relative
  1150.     location) on the right image. You can immediately move the points on
  1151.     the right image, even though you are still in Add Points mode. You
  1152.     cannot add points to the destination image, only the source image.
  1153.  
  1154.     Move Points
  1155.     -----------
  1156.     When this button is depressed, you can move any point on either image.
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.                                    -18-                                    
  1163.     Delete Points
  1164.     -------------
  1165.     When this button is depressed, you may delete any point on either
  1166.     image. When a point is removed from an image, the corresponding point
  1167.     on the other image is also removed.
  1168.  
  1169.     Delete All Points
  1170.     -----------------
  1171.     This button removes all of the points that are currently defined.
  1172.  
  1173.     Swap All
  1174.     --------
  1175.     This button allows you to swap the source and destination images, and
  1176.     all the points that were defined for them. This causes the morph to be
  1177.     generated in the opposite order, and may help you if you are having
  1178.     trouble building a mental image of what you want to happen during the
  1179.     morph.
  1180.  
  1181.     Swap Points
  1182.     -----------
  1183.     This swaps only the point definitions. This is useful when you enter
  1184.     the morph tools with the primary and secondary images loaded
  1185.     backwards; instead of having to exit the morph panel and start over,
  1186.     you can just swap the points. This makes it so that the proper set of
  1187.     points is associated with the correct image. If the morph is now
  1188.     backwards, that is, the generation will be in the opposite order than
  1189.     that which you intended, then use Swap All to reverse the sequence and
  1190.     you'll be ready to go.
  1191.  
  1192.     Load Points
  1193.     -----------
  1194.     This allows you to load a set of points which were previously saved.
  1195.     Note that all point position information is in a virtual space. This
  1196.     allows you to perform experimental morphs using very low resolution
  1197.     copies of images (we suggest 160x100 for most attempts) until you get
  1198.     the morph behaivior the way you want it; then, you can use higher
  1199.     resolution images and the morph point set will still be located in the
  1200.     same places on the image - the virtual space causes the translation to
  1201.     be completely transparent to you. Points may include velocity information.
  1202.  
  1203.     Save Points
  1204.     -----------
  1205.     This allows you to save the currently defined set of points in a named
  1206.     file for later reuse. Velocity information may be saved as well.
  1207.     
  1208.     Interlace Work Area
  1209.     -------------------
  1210.     This control allows you to use an interlaced screen display to work
  1211.     with the morph tools. If you have a deinterlacing device attached to
  1212.     your computer, or flicker doesn't bother you, you should use this
  1213.     setting. The additional vertical resolution allows more precision when
  1214.     placing points, and also provides better grey scale accuracy (due to
  1215.     more, and smaller, points available for dithering).
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.                                    -19-                                    
  1222.     Set Controls
  1223.     ------------
  1224.     This button opens a new control panel. Here, you load or create a
  1225.     transparency curve; once created, you can save the curve for later
  1226.     use. You may draw the curve using your mouse. Note that when curves
  1227.     are saved as files, they are saved in ASCII format so you can, if you
  1228.     are so inclined, edit the files yourself. The file format includes a
  1229.     virtual resolution for the morph, comments, and specific point-pair
  1230.     information.
  1231.  
  1232.     You also set the total number of frames you wish to be considered
  1233.     when morphing from the source image (the one on the left) to the
  1234.     destination image (the one on the right). Finally, you also set the
  1235.     output resolution here. The output resolution is the resolution that
  1236.     the morph frames will be generated in.
  1237.  
  1238.     Morph 1 Frame
  1239.     -------------
  1240.     This control will prompt you for the single frame you wish to generate
  1241.     out of the sequence you have defined (using Set Controls). Once you
  1242.     tell it what frame you want to do, it will immediately proceed to that
  1243.     frame, bypassing any others which would normally preceed it, and build
  1244.     that morph state. If you abort the generation, it will return to the
  1245.     morph control panel. If the morph process is allowed to proceed to
  1246.     completion, you are presented with the buffer selection panel. Once
  1247.     you choose a destination buffer, the main control panel returns.
  1248.  
  1249.     Sequence Generate
  1250.     -----------------
  1251.     In this panel, you set up the path, name and extension you wish to be
  1252.     used for the generation of multiple output frames. You have the
  1253.     opportunity to select a subset of the complete morph; in other words,
  1254.     if this is a 20 frame morph, you can specify that you only want to
  1255.     generate frames 14-17 or any other contiguous sequence. You can
  1256.     specify that the current render settings be used, in which case each
  1257.     frame of the morph will be rendered instead of saved as 24-bit images.
  1258.  
  1259.     Note that for most renders which are going to become animations, you
  1260.     will have to carefully provide a good set of colors to use or the
  1261.     animation will be poorer quality. An effective way to pick the "right"
  1262.     colors is to render a small set of morph frames (the default size is
  1263.     good) and then composite those into one frame. Let the render tools pick
  1264.     colors from that single frame, then save the resulting palette. This
  1265.     will be an excellent palette to use across the total morph in the larger
  1266.     size.
  1267.  
  1268.     You may cancel out of this panel, in which case no frames will be
  1269.     generated, or you may select Done to initiate the proceedure. The
  1270.     generation of the morph sequence may be interupted at any time by
  1271.     pressing the close gadget on the progress bar indicator.
  1272.  
  1273.     Drop Grid
  1274.     ---------
  1275.     This button allows you to "drop" a regular, rectangular grid
  1276.     of control points upon the images you're working with. Often,
  1277.     this may provide the "nailed-to-the-wall" effect for the
  1278.     majority of the image you need when doing distortion (single-
  1279.     image) morphs.
  1280.                                    -20-                                    
  1281.     Set Point Velocity
  1282.     ------------------
  1283.     This button allows you to (optionally) set the morph velocity of the
  1284.     currently selected point. Point morph velocities (speeds) are set by
  1285.     using graphs; you can pick from three preset graphs (standard
  1286.     linear, early and late) or you can create your own new graph (See
  1287.     "Set Vels", next) with any velocity curve you wish to use. The
  1288.     overall effect is that of portions of the image morphing at a
  1289.     different time than other portions; it adds a nice "liquid" feel to
  1290.     the morph if done gently. If done with a heavy hand, it makes the
  1291.     morph look very distorted, more of a horror-movie type of effect.
  1292.     When you set the velocity of a point, the associated velocity curve
  1293.     is saved in the morph points file (assuming you save it, of course).
  1294.     Be sure to use unique names for the individual curves.
  1295.     
  1296.     Pnt Vel
  1297.     -------
  1298.     This button opens the velocity curve control panel. Here, you can
  1299.     load, save and create velocity curves for use in your morphs. There
  1300.     are three preset (standard) curves available; early, late and
  1301.     normal. These curves are always set up, so you don't have to save
  1302.     them. If you change them, they will be automatically saved with the
  1303.     points file. In this case, make sure you change the name of the
  1304.     curve! Note that a point defaults to being assigned to the "normal"
  1305.     velocity curve if you've not changed it at all. One consequence of
  1306.     changing the normal curve is that all the points you did NOT assign
  1307.     will now have this new rate of change.
  1308.     
  1309.     Enhance Anti-Alias (in Morph Controls)
  1310.     --------------------------------------
  1311.     This button, when depressed, causes the morph generator to use
  1312.     sophisticated anti-aliasing techniques when generating output morph
  1313.     frames. This will slow the morphing process down about 15 percent.
  1314.     
  1315.     Grp Vel
  1316.     -------
  1317.     This button allows you to assign velocity curves to groups of points,
  1318.     instead of just one at a time. After selection, the points are
  1319.     highlighted.
  1320.     
  1321.     Shape Add
  1322.     ---------
  1323.     This button adds control points at the corners of an ISHAPE. It is used
  1324.     as follows :
  1325.     
  1326.       (1) When in morph hit the 'Shape Add' button.
  1327.       
  1328.       (2) Use the requestor to choose an ISHAPE or cancel to retain
  1329.           the current one.
  1330.           
  1331.           (Ovals/polygons with 3 to 95 points/sides are supplied in
  1332.           the IShapes drawer.)
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.                                    -21-                                    
  1340. <continuation of shape add description for morphing>
  1341.  
  1342.       (3) Click and drag with the left mouse button in either view
  1343.           area to size and position the shape over the feature you
  1344.           want.  Holding down the right mouse button at the same time
  1345.           will move the shape.
  1346.  
  1347.       (4) When you release the left mouse button, the shape will be 
  1348.           duplicated in the other view area.
  1349.           The shape has an orientation arrow shown on it.  
  1350.           Click with the left mouse button in this other view area and
  1351.           position it on the matching feature.
  1352.           Its orientation arrow will follow the cursor. You should make
  1353.           the arrow point the same way in each view, because Morph is
  1354.           going to use each corner in order.
  1355.           
  1356.       (5) When you release the left mouse button this time, morph control
  1357.           points will be placed at the corners of the shape.
  1358.  
  1359.  
  1360.     Zooming In
  1361.     ----------
  1362.     When placing control points, you may find that you need more precision
  1363.     than is available with the normal view. To accommodate that need, the
  1364.     ZOOM button is available. The Zoom capability is used as follows:
  1365.  
  1366.         . When in Morph, press the Zoom button
  1367.         
  1368.         . Draw a rectangular area to zoom in to, on either
  1369.           the left or right frame.  Holding down the right mouse
  1370.           button while drawing will reposition the zoom rectangle.
  1371.           
  1372.         . Click on the Zoom button to undo the magnify.
  1373.         
  1374.      While in the zoomed state the arrow keys can be used to pan.
  1375.      
  1376.          The L key will isolate panning to the Left frame.
  1377.          
  1378.          The R key will isolate panning to the Right frame.
  1379.          
  1380.          The B key will apply panning in both frames.
  1381.          
  1382.          The < key will also reduce the amount of zoom 25%.
  1383.          
  1384.          The > key will increase the amount of zoom 25%.
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.                                    -22-                                    
  1399.     Arc Vectors - overview
  1400.     ----------------------
  1401.     This control opens up a whole new set of capabilities. First, as the
  1402.     name of the control implies, you can change the morph vectors from
  1403.     linear paths to curved paths. This can add an organic feel to your
  1404.     morphs quite easily. Secondly, the display presented to you here is an
  1405.     "onionskin" type of overlay, which allows you to see both images at
  1406.     one time, overlaid one upon another; you can move the endpoints of the
  1407.     control vectors here if you prefer, in an environment that may provide
  1408.     a more intuitive view of what is going on in some cases.
  1409.     
  1410.     Vector Display
  1411.     --------------
  1412.     Vectors are displayed using a closed box, an open box, and an open
  1413.     triangle. The closed and open boxes are the source and destination
  1414.     points as set in the main morphing panel. Either or both of these may
  1415.     be moved by "grabbing" the desired point with the mouse and dragging
  1416.     it.
  1417.     
  1418.     The triangular point may also be grabbed with the mouse and moved.
  1419.     If you do this, the morph vector path will change from a simplex
  1420.     vector to a complex curve; when the morph executes, the path of the
  1421.     regions controlled by this vector will also curve in a similar manner,
  1422.     depending also (of course) on the paths of other vectors within strong
  1423.     attraction ranges.
  1424.     
  1425.     Curve "handles"
  1426.     ---------------
  1427.     When you extend a morph control vector into a complex arc, the
  1428.     triangular control point moves away from the arc a bit further than
  1429.     the arc itself extends. This is normal, and is a consequence of the
  1430.     type of curve-fitting methods used. Usually, you will want to be able
  1431.     to easily associate this control point with the arc it controls; this
  1432.     capability is available; you may choose between three different types
  1433.     of display methods for this association.
  1434.     
  1435.         1 - You can select the "I" display, which attaches the point
  1436.             to the arc via a single line, which we call an "I-Beam".
  1437.         
  1438.         2 - You can select the "V" display, which attaches the point
  1439.             to the arc with a pair of new vectors.
  1440.         
  1441.         3 - You can select no attachment; useful in crowded displays;
  1442.             reduces clutter.
  1443.     
  1444.     All Vectors, or Single Vectors
  1445.     ------------------------------
  1446.     When you are manipulating vectors, you may elect to see all of the
  1447.     vectors at one time, selecting the one to operate upon with the mouse,
  1448.     or you can select one vector at a time, using the left and right arrow
  1449.     keys on the keyboard to select the next or previous vector for
  1450.     display. This is very useful in very crowded displays.
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.                                    -23-                                    
  1458.     Onionskin
  1459.     ---------
  1460.     The onionskin display is a full-screen type that can show an overlay
  1461.     of the two morph source images in any degree of transparency. There is
  1462.     an adjustable slider that may be set for all of the source image, all
  1463.     of the destination image, or some mix of the two. It defaults to a 50%
  1464.     mix of the images. If you change the position of this slider, there
  1465.     will be a one-time delay while a new display may is calculated, after
  1466.     which the display will be updated immediately for all succeeding
  1467.     operations, even when going back and forth between the two morph
  1468.     display screens.
  1469.  
  1470.     Exit
  1471.     ----
  1472.     This exits the morph control panel without generating any frames.
  1473.  
  1474.                                  ----------
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.                                    -24-                                    
  1517.     List Requester (ARexx-based capability)
  1518.     =======================================
  1519.     This capability allows you to bring up a list requester inside the
  1520.     image processor from which the user can select an entry; once an item
  1521.     is selected, a value (selected by you) is returned to the calling
  1522.     ARexx script or macro.  The list environment for the PI Modules is
  1523.     implemented using this capability.  For more details, see the
  1524.     information describing the list environment for PI Modules. In
  1525.     particular, see the script "launch.rexx" and the file "list.list" for
  1526.     a complete example of how to use this powerful capability.
  1527.     
  1528.     Here is the format of the ARexx command:
  1529.     
  1530.           'listreq "Title text",listfilename,"keywords,etc"'
  1531.     
  1532.                                  ----------
  1533.     
  1534.     Load Image as Secondary
  1535.     =======================
  1536.     This option will appear when you already have a Primary image buffer,
  1537.     it allows you to load the next image in automatically assigned as the
  1538.     secondary buffer. If buffers besides the primary are already loaded,
  1539.     then you will also be presented with the option to replace an old
  1540.     buffer as secondary.
  1541.     
  1542.                                  ----------
  1543.     
  1544.     Load Image as Blend
  1545.     ===================
  1546.     This option will appear when you already have a Primary image buffer,
  1547.     it allows you to load the next image in automatically assigned as the
  1548.     blend buffer. If buffers besides the primary are already loaded,
  1549.     then you will also be presented with the option to replace an old
  1550.     buffer as blend.
  1551.     
  1552.                                  ----------
  1553.     
  1554.     Load Image as Brush
  1555.     ===================
  1556.     This option will appear when you already have a Primary image buffer,
  1557.     it allows you to load the next image in automatically assigned as the
  1558.     brush buffer. If buffers besides the primary are already loaded,
  1559.     then you will also be presented with the option to replace an old
  1560.     buffer as brush.
  1561.     
  1562.                                  ----------
  1563.     
  1564.     
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.                                    -25-                                    
  1576.     Co-ordinates
  1577.     ============
  1578.     The image processor now provides you with the option of displaying
  1579.     image X and Y co-ordinates while you work in the display. This option
  1580.     is controlled by a button in the Display panel called ``Show Cords''.
  1581.     
  1582.     There is another button that affects the co-ordinates, also in the
  1583.     Display panel. This one is called ``Drag Relative''. If you select it,
  1584.     then the co-ordinate display will show you the size of the object, or
  1585.     the distance of the pointer from the location you started drawing or
  1586.     selecting. This is useful if you need to create a specific size object.
  1587.     
  1588.     You can use the ``Cords at bottom'' button to switch the display from
  1589.     the top right to the bottom right. The ``s'' key will do the same
  1590.     thing when pressed while you are drawing.
  1591.     
  1592.     The following two ARexx commands allow to to set these conditions up:
  1593.     
  1594.         COORDS <show> [showattop]
  1595.         -------------------------
  1596.             Here, <show> is required, 0 means no, 1 means yes
  1597.         
  1598.         GRID <on> <xgrid> <ygrid> <xoffs> <yoffs>
  1599.         -----------------------------------------
  1600.             Here, <on> is required and should be 1 for on, 0 for off.
  1601.             If <on> is present, then the other four parameters must also be.
  1602.             <xgrid> and <ygrid> define the spacing of the grid. <xoffs>
  1603.             and <yoffs> define the offset from the top left edge of the
  1604.             image where the first vertice of the grid will occur. These
  1605.             last two parameters MUST be values less than the first two.
  1606.     
  1607.                                  ----------
  1608.     
  1609.     Grid
  1610.     ====
  1611.     The image processor provides a grid capability. This is enabled in the Display
  1612.     panel by the ``Use Grid'' button, and when on, allows you to draw only
  1613.     on the selected grid size.
  1614.     
  1615.     Grid size and position is controlled by two buttons in the Display
  1616.     panel called ``Set Grid Interactive'' and ``Set Grid Numeric''.
  1617.     
  1618.     If you use the interactive mode, you are presented with the main
  1619.     image, and you use the mouse to pull out a rectangle. That rectangle
  1620.     sets both the gird size (the same as the rectangle) and its origin
  1621.     (the same as the rectangles corners).
  1622.     
  1623.     If you use the numeric method, you are prompted for an X and Y size,
  1624.     as well as an X and Y origin. The sizes represent the width and height
  1625.     of each grid cell. The origin represents the distance from the upper
  1626.     left hand corner (0,0) of the image that the first ``snap'' point
  1627.     occurs.
  1628.     
  1629.                                  ----------
  1630.  
  1631.  
  1632.  
  1633.  
  1634.                                    -26-                                    
  1635.     Adding Noise
  1636.     ============
  1637.     The function F/x Random Dither allows you to add noise to an image if
  1638.     the region is too smooth for your taste. You can set the amplitude of
  1639.     the noise to your liking. You can select luma or an indpendant RGB
  1640.     dither.
  1641.     
  1642.                                  ----------
  1643.     
  1644.     Clip to exact size (F/x)
  1645.     ========================
  1646.     This capability allows you to specify a rectangular region, for
  1647.     instance 100 by 75, and then clip that exact size region from the
  1648.     primary image.
  1649.     
  1650.     This is useful when you are trying to create a smaller output image
  1651.     from an already existing larger image.
  1652.     
  1653.                                  ----------
  1654.     
  1655.     X-Specs Over-Under
  1656.     ==================
  1657.     This function takes an image that is interleaved for the X-Specs
  1658.     glasses and modifies that image to the X-Specs Over-Under format, used
  1659.     by some X-Specs viewers. The conversion takes place entirely in the
  1660.     Primary buffer.
  1661.     
  1662.                                  ----------
  1663.     
  1664.     X-Specs Interleave
  1665.     ==================
  1666.     This function takes an image that is over-under, that is, has one
  1667.     field over the other, and changes it to the interleaved format.  The
  1668.     conversion takes place entirely in the Primary buffer.
  1669.     
  1670.                                  ----------
  1671.     
  1672.     X-Specs Separate
  1673.     ================
  1674.     This function takes an interleaved X-Specs image in the Primary buffer
  1675.     and separates the two fields into two new buffers. You have the
  1676.     opportunity to name these buffers if you like; if not, they will be
  1677.     called Clip_N and Clip_N+1, where N is the current clip number.
  1678.     
  1679.     Note that this process creates two new buffers which have half the
  1680.     number of lines of the Primary buffer in addition to the Primary
  1681.     buffer, and as a result will require as much additional memory as the
  1682.     Primary buffer consumes.
  1683.     
  1684.                                  ----------
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.                                    -27-                                    
  1694.     F/x User Transforms
  1695.     ===================
  1696.     This is one of the most flexible, and potentially complicated,
  1697.     operations in the entire image processor.
  1698.     
  1699.     In simple terms, this provides you with a graph, where you have the
  1700.     opportunity to specify the resulting output from every level in a
  1701.     buffer. You can cause this function to create the exact operations for
  1702.     contrast, brightness, gamma, negative, histogram equalization and more.
  1703.     
  1704.     You can save (and reload later, of course) any transform curve you
  1705.     create; several are provided as ``boilerplate'' for you to try out. A
  1706.     special function also sets the transform curve to the current curve of
  1707.     the image itself; this can be used to equalize the image.
  1708.     
  1709.     The files that are saved are in a textual format. The file should
  1710.     contain at the beginning the four letters ``TFRM''. Following that
  1711.     first line, you can have one of three things on any line of the file.
  1712.     
  1713.         (1) a blank line, which will be ignored;
  1714.         
  1715.         (2) a line that begins with the ``*'' character, which allows the
  1716.             line to contain any comment;
  1717.             
  1718.         (3) or a number from zero to 255.
  1719.     
  1720.     Only the first 256 lines which contain numbers are read from the
  1721.     file. You can create, or modify, these files with any good text
  1722.     editor (but not a word processor).
  1723.     
  1724.     The curve itself can be drawn with the mouse, smoothed, or as
  1725.     mentioned previously, generated from the image.
  1726.     
  1727.     Note that there is a smaller graph area which contains the current
  1728.     transform curve of the image at the upper left.
  1729.     
  1730.                                  ----------
  1731.     
  1732.     Stretch (Scale, Zoom)
  1733.     =====================
  1734.     The Stretch Clip operation now has the ability to stretch to a
  1735.     particular percentage, as well as the original stretch to a particular
  1736.     pixel size.
  1737.     
  1738.                                  ----------
  1739.     
  1740.     Map to Range
  1741.     ============
  1742.     This tool is similar to the Map To Palette capability, except it uses
  1743.     the current range, and (since ranges may be smaller than 256 colors)
  1744.     the range will be automatically interpolated (smoothed) if the range
  1745.     is 255 or less colors.
  1746.     
  1747.                                 ----------
  1748.  
  1749.  
  1750.  
  1751.  
  1752.                                    -28-                                    
  1753.     Color Balance
  1754.     =============
  1755.     Color Balance is a tool that re-balances the entire image, based upon
  1756.     a region you specify.
  1757.     
  1758.     The principle underlying Color Balance is the same as that used by
  1759.     Grey and White balance operations, but with a twist.
  1760.     
  1761.     The assumption made is that you can (by observing) locate an area on
  1762.     the image that you want to be tinted to an exact shade of a particular
  1763.     color. If you can, you identify this area using the region select
  1764.     tools, and the function will re-balance the entire image based upon
  1765.     that information.
  1766.     
  1767.     What you end up with is a tinted image; similar to using a dye when
  1768.     developing film.
  1769.     
  1770.                                  ----------
  1771.  
  1772.     Numeric Area Selection
  1773.     ----------------------
  1774.     This is an area selection tool which allows you to create a selected
  1775.     rectangle using numbers instead of the interactive tools. This provides
  1776.     a very specific area selection for precision operations.
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.                                    -29-                                    
  1812.     Black Balance
  1813.     =============
  1814.     Black Balance is a tool that re-balances the entire image, based upon
  1815.     a region you specify.
  1816.     
  1817.     The principle underlying Black Balance is the same as that used by
  1818.     Grey and White balance operations.
  1819.     
  1820.     The assumption made is that you can (by observing) locate an area on
  1821.     the image that should have been black. If you can, you identify this
  1822.     area using the region select tools, and the function will re-balance
  1823.     the entire image based upon that information.
  1824.     
  1825.     This is very effective for images that have low contrast or coloration.
  1826.     
  1827.                                  ----------
  1828.     
  1829.     Force Dynamic
  1830.     =============
  1831.     This operation is similar to the Dynamic Range operation. To
  1832.     understand the difference, we need to look at Dynamic Range.
  1833.     
  1834.     The Dynamic Range operation examines the entire image, finds the
  1835.     darkest and lightest regions, and then linearly expands the contrast
  1836.     and moves the brightness center appropriately. This results in the
  1837.     maximum possible contrast without losing any image information.
  1838.     
  1839.     Force Dynamic does the same thing, except that the examination for
  1840.     maximum and minimum regions is only performed in the region you
  1841.     specify, not the entire image. As a result, Force Dynamic can indeed
  1842.     lose image data.
  1843.     
  1844.     One possible use would be for an image that was contained as a sub-
  1845.     image within another --- for instance, a picture on a television in a
  1846.     larger image. You can use Force Dynamic on the TV image, and that
  1847.     image will be brought to its maximum non-destructive contrast (and
  1848.     portions, or all of the rest of the image may be seriously damaged).
  1849.     
  1850.                                  ----------
  1851.     
  1852.     X-Specs Conversion
  1853.     ==================
  1854.     This operation allows you to create an X-Specs interleave format image
  1855.     from the image in the Primary buffer and the image in the Secondary
  1856.     buffer. You can even do this with dissimilar size images!
  1857.     
  1858.                                  ----------
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.                                    -30-                                    
  1871.     Absolute Resample - no anti-aliasing
  1872.     ====================================
  1873.     The stepped Zoom operation now allows you to reduce an image's
  1874.     resolution without averaging neighboring pixels; this was added so
  1875.     that the automatic expansion of HAM-E images to hi-resolution pixels
  1876.     (with synthesis of intervening pixels using the same method as our
  1877.     advanced hardware Anti-Alias engine) could be reversed without any
  1878.     unintended smoothing of the image.
  1879.     
  1880.     Suggested use is to run it on the horizontal axis only.
  1881.     
  1882.                                  ----------
  1883.     
  1884.     Merge with Render from Range
  1885.     ============================
  1886.     This operation will take a range of colors you have defined in the
  1887.     palette and render the secondary image into the primary image using
  1888.     only those colors. The operation is similar to a merge, in that the
  1889.     entire secondary image is rendered into the region you specify.
  1890.     
  1891.     For instance, if you have a 4 color range that consists of black,
  1892.     white, and two intermediate grey levels, then that's how the image
  1893.     will be placed into the primary image. This allows you to use
  1894.     unlimited creativity in color compositions.
  1895.     
  1896.     One option is to use dither when rendering using the range colors.
  1897.     Dither effectively increases the available color space, and images
  1898.     will look more accurate, as well as somewhat ``rougher''.
  1899.     
  1900.     Another option is to turn ``Excursion Off'' for the render. This is
  1901.     only effective if dither is on; the effect is to increase the number
  1902.     of colors available in dither, but it will also make the iamge appear
  1903.     even rougher.
  1904.     
  1905.     Another option allows you to select a stretched merge, or a sub-
  1906.     sampled merge.
  1907.     
  1908.     You can use blending in the normal fashion with this operation, also.
  1909.     You should be aware that when blending is on, more colors are used to
  1910.     composite the image, as various levels of the colors in the range are
  1911.     blended with the colors in the primary image.
  1912.     
  1913.                                  ----------
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.                                    -31-                                    
  1930.     Additional Render Controls and Capabilties
  1931.     ==========================================
  1932.     The image processor's Amiga mode rendering procedures have been
  1933.     completely re-written during the production of revisions 7.02 and
  1934.     7.03. We are confident that our rendering capabilities now meet or
  1935.     exceed those of any other product currently available for final image
  1936.     quality. Comparison renders performed at Black Belt Systems using the
  1937.     latest releases of commercial Amiga packages which also render to
  1938.     Amiga mode images provide the basis for this confidence. If you have
  1939.     other software which performs these tasks, we encourage you to make
  1940.     the same comparisons. Knowing what package performs better in this
  1941.     regard will serve you well as your create your Amiga mode images.
  1942.     
  1943.     Details
  1944.     =======
  1945.     The control "Turn Off Excursion Limit" may now be used to modify the
  1946.     quality of most render modes. It works with dithering to provide a
  1947.     larger color space. If you turn off the dither when rendering, this
  1948.     has no applicability. If you turn excursion off, the dither operations
  1949.     can reach more colors in the color space. The image may appear rougher
  1950.     as a result. We suggest you try things both ways before committing to
  1951.     a final render. Most images will be better with this button depressed.
  1952.     
  1953.     All Amiga render modes now have multiple dither choices for your
  1954.     rendering convenience; you may currently choose from:
  1955.     
  1956.      No Dither ------- Uses the nearest color in the palette; contours.
  1957.          
  1958.      2-Point EDD ----- Most color accuracy; roughest image. Heavy dithering
  1959.     >Floyd-Steinberg - Best compromise; not too rough, good color accuracy 
  1960.      Jarvis ---------- A bit smooth; begins to show contouring (mach bands)
  1961.      Stucki ---------- Extremely smooth; contouring is quite evident
  1962.      Random F-S ------ Rough; good color accuracy, tends to hide errors
  1963.      Dual Random F-S - Not so rough; good color accuracy. Less clumping.
  1964.     
  1965.     You may modify any dither method with either Left->Right scan or
  1966.     Serpentine scan. Serpentine is almost always better.
  1967.     
  1968.     For low color renders that pick new color registers, 16 colors for
  1969.     instance, you should try "Chekov Forcing" and see if your image
  1970.     renders better with it on. This will cause the color picking code to
  1971.     choose slightly different registers which will help portions of the
  1972.     image that have color "hot spots" to render more accurately.
  1973.     
  1974.     Our suggestion for the best render quality for most images (there will
  1975.     be a few exceptions to this) is to use the Floyd-Steinberg dither,
  1976.     serpentine scan, excursion limiting off. Chekov forcing is a 50-50
  1977.     kind of thing. Sometimes it helps a lot, but it may make the render
  1978.     worse.
  1979.     
  1980.                                  ----------
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.                                    -32-                                    
  1989.     Compose with Logical OR
  1990.     =======================
  1991.     This image composition operation will combine the Secondary image into
  1992.     the Primary image using the logical OR operation.
  1993.     
  1994.                                  ----------
  1995.     
  1996.     Compose with Logical AND
  1997.     ========================
  1998.     This image composition operation will combine the Secondary image into
  1999.     the Primary image using the logical AND operation.
  2000.     
  2001.                                  ----------
  2002.     
  2003.     Multiple Blend Technique Application
  2004.     ====================================
  2005.     You can now use any of the three blending techniques in combination
  2006.     with each other. The manual implies that the blending techniques are
  2007.     independant and exclusive. While you can still use them independantly,
  2008.     you can also use them together in any combination.
  2009.     
  2010.                                  ----------
  2011.     
  2012.     Smooth Edge Blending as a Percentage
  2013.     ====================================
  2014.     The smooth edge blending capability now has the ability to be
  2015.     specified as a percentage of the region's size. The specify by number
  2016.     of pixels is still intact, of course. This will help you use the
  2017.     technique on larger images, and also allows you to apply similar
  2018.     looking edge blends without having to re-specify the blend lengths.
  2019.     
  2020.                                  ----------
  2021.     
  2022.     Masks
  2023.     =====
  2024.     The image processor can now save masks with images, contrary to the
  2025.     statement in the printed manual that it does not. These masks are in a
  2026.     proprietary format readable by our image processing software, and will
  2027.     be (should be) ignored by other IFF readers automatically if they are
  2028.     written correctly.
  2029.     
  2030.     The PMBC Public Interface module will also save and load masks with
  2031.     images.
  2032.     
  2033.                                  ----------
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.                                    -33-                                    
  2048.     Color Separations
  2049.     =================
  2050.     
  2051.     General
  2052.     -------
  2053.     The image processor now has full RGB, CMY and CMYK color separation
  2054.     capability for both 12 and 24 bit images. The color separation tool is
  2055.     located in the File I/O panel; it is extremely flexible and allows you
  2056.     to save multiple control parameter settings for your various color
  2057.     separation needs.
  2058.     
  2059.     Color separations are positive, and so where you expect a lot of ink
  2060.     to be on the paper, the image on screen will have the most color
  2061.     (``ink''). If you use a color map, the image will be the color of the
  2062.     separation (cyan, for instance) where the paper is white, which is
  2063.     somewhat counter-intuitive, and it will be black where it is maximum
  2064.     cyan.
  2065.     
  2066.                                  ----------
  2067.     
  2068.     Under Color Removal
  2069.     -------------------
  2070.     This control sets the amount of color (cyan, magenta, yellow) ink
  2071.     removed when they can be replaced by black.
  2072.     
  2073.                                  ----------
  2074.     
  2075.     Gray Component Replacement
  2076.     --------------------------
  2077.     This control sets the amount of black ink that replaces what was
  2078.     removed by the Under Color Removal tool.
  2079.     
  2080.                                  ----------
  2081.     
  2082.     Magenta Ink Mix Correction
  2083.     --------------------------
  2084.     This control compensates for impure ink colors, IE, the cyan ink is
  2085.     not pure cyan. The default value is set for Inkum Inks, which we
  2086.     strongly recommend for inkjet use.
  2087.     
  2088.                                  ----------
  2089.     
  2090.     Yellow Ink Mix Correction
  2091.     -------------------------
  2092.     This control compensates for impure ink colors, IE, the magenta ink is
  2093.     not pure magenta. The default value is set for Inkum Inks, which we
  2094.     strongly recommend for inkjet use.
  2095.     
  2096.                                  ----------
  2097.     
  2098.     Output 12 Bit
  2099.     -------------
  2100.     This setting allows you to create 12 bit color separations, needed for
  2101.     some Amiga DTP programs. You should always use 24 bit separations for
  2102.     professional work.
  2103.     
  2104.                                  ----------
  2105.  
  2106.                                    -34-                                    
  2107.     Output 24 Bit
  2108.     -------------
  2109.     The setting allows you to create 24 bit accurate color separations.
  2110.     
  2111.                                  ----------
  2112.     
  2113.     Gray CMAP
  2114.     ---------
  2115.     This section causes a grey CMAP to be placed in the output file, which
  2116.     is required for proper color separation operation. The alternative,
  2117.     Color CMAP, makes the images easier to understand and view, but is not
  2118.     useful for real separations.
  2119.     
  2120.     Color CMAP
  2121.     ----------
  2122.     This places a color CMAP in the separation file, which will let you
  2123.     visually cue in to how much ink will be used when observing the files.
  2124.     Do not use this settings for final work; You must place a Gray CMAP in
  2125.     the file for it to be useful.
  2126.     
  2127.                                  ----------
  2128.     
  2129.     Set To Default
  2130.     --------------
  2131.     This control forces the Under Color Removal, Gray Component Replacement,
  2132.     Magenta Ink Correct, and Yellow Ink Correct to their respective default
  2133.     values.
  2134.     
  2135.     Set To No Correction
  2136.     --------------------
  2137.     Just as it says. The colors are created via a straight mathematical
  2138.     transform with no correction for the shortcomings of inks and paper.
  2139.     
  2140.     Generate CMYK Separation
  2141.     ------------------------
  2142.     This produces four output files, cyan, magenta, yellow and black. This
  2143.     is what you will typically use for professional separations.
  2144.     
  2145.     Generate CMY Separation
  2146.     -----------------------
  2147.     This produces three output files, cyan, magenta and yellow. This is
  2148.     what you will typically use for three color printer ribbons.
  2149.     
  2150.     Generate RGB Separation
  2151.     -----------------------
  2152.     This allows you to separate the image into it's respective R, G and B
  2153.     components. We don't know what use it is, but others have this
  2154.     capability, so we added it also.
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.                                    -35-                                    
  2166.     Save Settings
  2167.     -------------
  2168.     This allows you to save the current settings of the Color Separation
  2169.     panel. This is very useful for situations where you'll be outputting
  2170.     to various print agencies or printers, and the settings are different.
  2171.     
  2172.     Note that if you save a settings file and name it ``Default.csep'', it
  2173.     will be automatically loaded when the software starts. It should be
  2174.     located either in the current directory or drawer (not recommended) or
  2175.     in the s: assignment (highly recommended).
  2176.     
  2177.                                  ----------
  2178.     
  2179.     Load Settings
  2180.     -------------
  2181.     This loads any settings that you saved.
  2182.     
  2183.                                  ----------
  2184.     
  2185.     Extensions
  2186.     ----------
  2187.     You can preset the extensions used on the color separation files if
  2188.     you like, using the four text entry fields provided.
  2189.     
  2190.                                  ----------
  2191.     CMYK and RGB Recombination
  2192.     ==========================
  2193.     Recombinations are done with the compose panel. The general idea here
  2194.     is that you prepare a blank buffer (White for CMYK, Black for RGB) to
  2195.     receive the recombined image. Each portion of the image to be
  2196.     recombined is loaded as a secondary buffer, then processed using the
  2197.     matching recombination function. For instance, to recombine a CMY
  2198.     image, you would create an all-white buffer of the size you want the
  2199.     output image. Now, load the Cyan (C) portion of the separated image.
  2200.     Make it the secondary and recombine that portion. Now load the M and Y
  2201.     portions and do the same.
  2202.     
  2203.     For CMY or CMYK recombination, you need to know what the UCR, GCR and
  2204.     ink correction settings were or the image colors will come out wrong.
  2205.     To do this with an RGB image, the process is the same except for one
  2206.     thing; you need to start with an all-Black buffer instead of a white
  2207.     one. This is technically because RGB colors are additive and CMYK
  2208.     colors are subtractive.
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.                                    -36-                                    
  2225.     Genlocking
  2226.     ==========
  2227.     Creating a Transparent Region
  2228.     -----------------------------
  2229.     Rendering now allows you to specify Transparency for genlocking by
  2230.     marking a region that you do not want to be transparent. So, if you
  2231.     have drawn a graphic you want to appear in the top right of the frame,
  2232.     just move the object there using the usual tools, then when you
  2233.     render, just define that object as the ``non-transparent'' region. The
  2234.     entire remaining portion of the image will be drawn using the Amiga
  2235.     (or HAM-E) ``color zero'', which will make it transparent for
  2236.     genlocking purposes.
  2237.     
  2238.     Keep in mind that not using the color zero color can substantially
  2239.     reduce the render quality of an image, especially when you are using
  2240.     fewer colors.
  2241.     
  2242.                                  ----------
  2243.     
  2244.     Color-Keying: Transparency by Color
  2245.     -----------------------------------
  2246.     You can also create a genlock (transparent) region by selecting the
  2247.     Color Gen Mask button. This will cause the image to have transparent
  2248.     (genlock) areas wherever the color in the image matches the color
  2249.     selected in the process panel using "define color". The color radius
  2250.     also affects the genlock area generation.
  2251.     
  2252.     An example would be where you have a picture of a model you have taken
  2253.     against an aqua background. Select the aqua area as the "defined
  2254.     color", and then use Color Gen Mask to build the genlocked image. The
  2255.     image will be transparent everywhere but where the model is.
  2256.     
  2257.     Of course, if the model is wearing any aqua color, or has aqua eyes,
  2258.     that region will be transparent as well. You can fix this up by
  2259.     changing the colors of that region using the paint tools.
  2260.     
  2261.     Keep in mind that not using the color zero color can substantialy
  2262.     reduce the render quality of an image, especially when you are using
  2263.     fewer colors.
  2264.     
  2265.                                  ----------
  2266.     
  2267.     Creating Non-transparent Renders
  2268.     --------------------------------
  2269.     If you want a render to be totally non-transparent (that is, doesn't
  2270.     use the Amiga color zero anywhere), then select the "Identify the
  2271.     genlock non-transparent area" button an choose "entire image" as the
  2272.     region. The entire image will be non-transparent.
  2273.     
  2274.     Keep in mind that not using the color zero color can substantialy
  2275.     reduce the render quality of an image, especially when you are using
  2276.     fewer colors.
  2277.     
  2278.                                  ----------
  2279.  
  2280.  
  2281.  
  2282.  
  2283.                                    -37-                                    
  2284.     DCTV
  2285.     ====
  2286.     
  2287.     Compatibility
  2288.     -------------
  2289.     The image processor can now load DCTV files from the 1.1 version of
  2290.     the DCTV software as well as the original software format and the
  2291.     library format.
  2292.     
  2293.     Filtering
  2294.     ---------
  2295.     The DCTV library allows you to filter the RGB image that is used to
  2296.     create the final DCTV image. If you select the "Use DCTV RGB Filter"
  2297.     button when you render DCTV images, this filter is called into action.
  2298.     Again, this function is entirely dependant upon the code in the
  2299.     DCTV.library software. Black Belt Systems is not responsible for
  2300.     any image degradation you may experience in the final DCTV image.
  2301.     
  2302.                                  ----------
  2303.     
  2304.     Brushes
  2305.     =======
  2306.     
  2307.     Transparent Brush Cutting
  2308.     -------------------------
  2309.     When you select "Cut Out New Brush", you will now get a two button
  2310.     panel that asks you if you'd like to do this as a transparent
  2311.     operation or just as a solid area.
  2312.     
  2313.     If you do select transparency, the transparent portion of the cut will
  2314.     occur where the background color (See Color Definition, next) is
  2315.     similar to the color in the cut region. The color radius affects the
  2316.     transparent region calculations.
  2317.     
  2318.                                  ----------
  2319.     
  2320.     Color Definition
  2321.     ================
  2322.     
  2323.     Adjust Foreground Color
  2324.     -----------------------
  2325.     This new option within the paint panel allows you to immediately
  2326.     adjust the foreground color using RGB controls.
  2327.     
  2328.                                  ----------
  2329.     
  2330.     Sample to Foreground Color
  2331.     --------------------------
  2332.     This new option within the paint panel allows you to immediately
  2333.     adjust the foreground color by selecting a region on the Primary image.
  2334.     
  2335.                                  ----------
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.                                    -38-                                    
  2343.     Adjust Background Color
  2344.     -----------------------
  2345.     This new option within the paint panel allows you to immediately
  2346.     adjust the background color using RGB controls.
  2347.     
  2348.                                  ----------
  2349.     
  2350.     Sample to Background Color
  2351.     --------------------------
  2352.     This new option within the paint panel allows you to immediately
  2353.     adjust the background color by selecting a region on the Primary image.
  2354.     
  2355.                                  ----------
  2356.     
  2357.     Palette Mapping
  2358.     ===============
  2359.     In the main paint panel there is a new option called "Palette
  2360.     Mapping".  This function is for artists who wish to change colors
  2361.     which have already been painted with, from the palette or from a range.
  2362.     
  2363.     To do this:-
  2364.     
  2365.          (1) Copy the range that you have drawn with into the
  2366.              current palette,
  2367.     
  2368.          (2) Choose "Palette Mapping" and "Establish Map", you will
  2369.              then be able to select the area to be affected,
  2370.     
  2371.          (3) Adjust the colors in the palette to the new colors
  2372.              you want,
  2373.     
  2374.          (4) Choose "Palette Mapping" and "Apply Palette Changes";
  2375.              This will change the drawn colors in the image in the
  2376.              same way you changed the palette colors.
  2377.     
  2378.     Note that the "Establish Map" function only works on colors that
  2379.     exactly match those in the palette.  Also, "Toss Map" can be used to
  2380.     free up some memory after you have finished Palette Mapping.
  2381.     
  2382.                                  ----------
  2383.     
  2384.     Paint Settings To Disk
  2385.     ======================
  2386.     In the Paint Panel are Load and Save Paint Settings buttons.  This
  2387.     saves all the settings you are then using to paint with including the
  2388.     foreground and background colors.
  2389.     
  2390.                                  ----------
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.                                    -39-                                    
  2402.     New fill modes
  2403.     ==============
  2404.     
  2405.     Brush Emboss
  2406.     ------------
  2407.     This fill mode will emboss the image with a pattern derived from the
  2408.     brightness of the current brush. The fill proceeds in a regular
  2409.     rectangular fashion.
  2410.     
  2411.                                  ----------
  2412.     
  2413.     Brush Brick Emboss
  2414.     ------------------
  2415.     This fill mode is similar to Brush Emboss, but every other line of
  2416.     repeated brush patterns is offset by 1/2 the brush width, resulting in
  2417.     a fill that has the 50% offset characteristic of brick architecture.
  2418.     
  2419.                                  ----------
  2420.     
  2421.     Poly-range Fills
  2422.     ----------------
  2423.     Polyrange fills are a new and unusual type of fill developed by Black
  2424.     Belt specifically for our image processing software.
  2425.     
  2426.     The best way to describe a polyrange is to begin with a polygon. Let's
  2427.     take a polygon in the form of a triangle as our example. A triangle
  2428.     has three points. What polyfill will do is assign a color to each of
  2429.     those points from the range you supply, assuming only that the range
  2430.     you supply has three points.
  2431.     
  2432.     So, if you have a range that is red, green, blue, yellow... etc, then
  2433.     the triangle will have red, green and blue assigned to the three
  2434.     points of the corners. Now, there are two different ways that
  2435.     polyranges will work, depending on the Smooth Range fill setting.
  2436.     
  2437.     If smooth range fill is off, then the pixels inside the triangle will
  2438.     be filled according to the vertex (point) they are nearest to. So,
  2439.     pixels near the red vertex will also be red, and so on.
  2440.     
  2441.     If smooth range fill is on, then the pixels inside the triangle will
  2442.     be filled with all three colors, proportionally to how near they are
  2443.     to that particular vertex. So, for pixels right at the red vertex, you
  2444.     get red. For one halfway between red and green, but far away from
  2445.     blue, you'll get a yellow color.
  2446.     
  2447.     Keep in mind that polyranges can work with any number of points, so
  2448.     you can make some really spectacular fills. Note that large numbers of
  2449.     vertexes will cause long computation times, however.
  2450.     
  2451.     Rectangles and full screen polyrange fills act like four vertex
  2452.     polygons, and so require a four color range. If you have less colors
  2453.     in the range than there are vetexes in the polygon, then the range
  2454.     will repeat along the vertexes untill all vertexes are assigned a
  2455.     color.
  2456.     
  2457.                                  ----------
  2458.  
  2459.  
  2460.                                    -40-                                    
  2461.     Freehand and Elliptical Polyranges
  2462.     ----------------------------------
  2463.     We've done something wild, here. Since a freehand area or an ellipse
  2464.     are not composed of vertexes as polygons, polyarcs, rectangles and so
  2465.     on are, we needed a different way to apply polyranges to them.
  2466.     
  2467.     What we have done is to find out the length of the edge of the freehand
  2468.     area or ellipse, and then we distribute the entire range of colors
  2469.     around the perimeter of the region.
  2470.     
  2471.     Let's say you have a 6 color range (you might want to try this, the
  2472.     results are stunning!) or Red, Yellow, Green, Aqua, Blue, Purple.
  2473.     These colors are placed at points equidistant from each other around
  2474.     the perimiter of the object. So, if you draw a very round ellipse,
  2475.     with smooth range on, you get a gorgeous ``color wheel''. Freehand
  2476.     areas provide very strange and beautiful results.
  2477.     
  2478.     Again, be careful not to use ranges with very many colors unless you
  2479.     are prepared to wait more time.
  2480.     
  2481.                                  ----------
  2482.     
  2483.     Dual Range Fills
  2484.     ================
  2485.     The image processor now provides for a new type of fill that uses two
  2486.     separate color ranges to derive fill colors. These can be utilized
  2487.     once you have selected two ranges; you can select both from the paint
  2488.     panel, the new button to pick the secondary range is called ``Select
  2489.     Second Range''. Once you have picked the two ranges, you can use the
  2490.     following fill tools:
  2491.     
  2492.     Dual Horizontal Range
  2493.     ---------------------
  2494.     This fill mode places the two ranges above, and below the region to be
  2495.     filled. The pixels in the filled area are derived as a function of the
  2496.     distance between the top range, and the bottom range; they change
  2497.     horizontally across the filled region as they utilize different pixels
  2498.     from the two adjacent ranges.
  2499.     
  2500.     Dual Vertical Range
  2501.     -------------------
  2502.     This fill mode places the two ranges left, and to the right of the
  2503.     region to be filled. The pixels in the filled area are derived as a
  2504.     function of the distance between the left range, and the right range;
  2505.     they change vertically across the filled region as they utilize
  2506.     different pixels from the two adjacent ranges.
  2507.     
  2508.     Dual Horizontal Warp Range
  2509.     --------------------------
  2510.     This fill mode places the two ranges above, and below the region to be
  2511.     filled. The pixels in the filled area are derived as a function of the
  2512.     distance between the top range, and the bottom range; they change
  2513.     horizontally across the filled region as they utilize different pixels
  2514.     from the two adjacent ranges. The ranges are ``pinched'' together near
  2515.     the edges of the filled region.
  2516.  
  2517.  
  2518.  
  2519.                                    -41-                                    
  2520.     Dual Vertical Warp Range
  2521.     ------------------------
  2522.     This fill mode places the two ranges left, and to the right of the
  2523.     region to be filled. The pixels in the filled area are derived as a
  2524.     function of the distance between the left range, and the right range;
  2525.     they change vertically across the filled region as they utilize
  2526.     different pixels from the two adjacent ranges. The ranges are
  2527.     ``pinched'' together near the edges of the filled region.
  2528.     
  2529.                                  ----------
  2530.     Dual Range Example
  2531.     ------------------
  2532.     You need to create two different ranges. You can use as few as two
  2533.     colors in the first range, and five in the second range. You're going
  2534.     to be using the "Smooth Range" modifier, so you'll get a beautiful
  2535.     spread of colors anyway.
  2536.     
  2537.     Make the first range all dark blue. That's right, NO color change in
  2538.     the range.
  2539.     
  2540.     Make the second range go from aqua to orange to aqua. That's easy to
  2541.     do, just set one end of the range of colors to orange, one to aqua,
  2542.     and choose mirror range.
  2543.     
  2544.     From the palette display, select the aqua-orange-aqua range and place
  2545.     this in the range panel. Return to the palette, and then place the
  2546.     Blue-Blue range in the range panel. Since the Blue-Blue is the last
  2547.     range you entered, it is the current range. Now, exit back to the
  2548.     paint panel.
  2549.     
  2550.     Here, select the Second range (the aqua-orange-aqua one) using the
  2551.     control provided for that purpose.
  2552.     
  2553.     Go into the Fill panel, select "Smooth Range" and also select the fill
  2554.     mode as "Dual Horizonal Range". In this context, "Horizontal" means
  2555.     the way that the range lies on the image - NOT the way that the fill
  2556.     occurs. Here is how the fill will work:
  2557.     
  2558.                           Top of fill
  2559.     Range 1    Blue <----------------------> Blue
  2560.                       |        |         |
  2561.                       |        |         |
  2562.                       |        |         |         Filled area where color
  2563.                       |        |         |     <-- changes smoothly between
  2564.                       |        |         |         the two adjacent ranges
  2565.                       |        |         |
  2566.                       |        |         |
  2567.     Range 2    Aqua <-------Orange---------> Aqua
  2568.                         Bottom of fill
  2569.     
  2570.     You're ready to try the fill itself now. Select a rectangular region
  2571.     and fill it, or do the entire image if you'd like.
  2572.     
  2573.     You should have blue at the top, and this should fade down to an
  2574.     orange glow in the middle where the sun has just dissapeared.
  2575.     
  2576.                                  ----------
  2577.  
  2578.                                    -42-                                    
  2579.     Any Angle Range Fill
  2580.     --------------------
  2581.     This powerful fill mode consists of an angle entry field and a mode
  2582.     button in the fill modes panel.
  2583.     
  2584.     You can specify any possible angle, either positive or negative.
  2585.     
  2586.                                  ----------
  2587.     
  2588.     DPI operations
  2589.     ==============
  2590.     There are several operations that work within the concept of "Dots-
  2591.     Per-Inch".  One is accessed in the Buffer panel; it allows you to "Set
  2592.     Current DPI and Size" for a buffer. For instance, you can say, this
  2593.     buffer is 8.5x11, or that it is 200 DPI. There is an operation in the
  2594.     F/x panel that allows you to rescale using DPI as the criteria. You
  2595.     may find this particularly useful if you are into printed graphics.
  2596.     The distance calculator also understands DPI very well.
  2597.     
  2598.                                  ----------
  2599.     
  2600.     Initialize buffer to Color
  2601.     ==========================
  2602.     This brings up the RGB panel and allows you to create the buffer
  2603.     filled with a specific color.
  2604.     
  2605.                                  ----------
  2606.     
  2607.     Setup Panel
  2608.     ===========
  2609.     There is now a setup button in the image processor that provides you
  2610.     with the ability to specify Interlace or Non-interlace when the
  2611.     program starts.
  2612.     
  2613.                                  ----------
  2614.     
  2615.     Information Panel
  2616.     =================
  2617.     Other Buffers
  2618.     -------------
  2619.     This tool allows you to obtain X:Y pixel information, total memory
  2620.     used, parent, and other information about any buffer in the system.
  2621.     
  2622.                                  ----------
  2623.     
  2624.     Display Panel
  2625.     =============
  2626.     Fast HAM draw mode
  2627.     ------------------
  2628.     This display mode uses a pre-calculated palette for fast drawing.
  2629.     Future updates of the image processing software will concentrate on
  2630.     improving the speed of this tool; it will be the very first to be re-
  2631.     coded into assembly language.
  2632.     
  2633.                                  ----------
  2634.  
  2635.  
  2636.  
  2637.                                    -43-                                    
  2638.     Dither Off
  2639.     ==========
  2640.     The display can now be generates without dither, to reproduce images
  2641.     which already have dither in them more effectively. This option is not
  2642.     normally expected to be used.
  2643.     
  2644.     Public Interface Modules
  2645.     ========================
  2646.     
  2647.     Support Summary
  2648.     ---------------
  2649.     Readers: Targa, JFIF/JPEG, IFF Palettes, RGB8, RGBN, ANIM OPT-5,
  2650.              PMBC, Raw, SHAM, DHR, ARZ0, ARZ1, AHAM, DKB Trace, NJPL
  2651.              (Mac or IBM a & b), UPB8, DEC "IRAW" format (1, 8 and
  2652.              24-bit chunky format), Rendition-6rn, Rendition ALPHA-
  2653.              channel data, PCX files, Board Master PCB files, HotLinks
  2654.              Subscribe, & HotLinks Info (HotLinks is from SoftLogic,
  2655.              Inc).
  2656.  
  2657.     Writers: Targa, JFIF/JPEG, RGB8, PMBC, Raw, VistaPro binary
  2658.              altitude maps, ANIM OPT-5, Rendition-6rn, Hotlinks
  2659.              Publish, Hotlinks Update.
  2660.  
  2661.     Effects: Tesselate, Koch fractal Snowflake, Graph generation,
  2662.              Erode/Dilate, Detailed Histogram Reporter.
  2663.  
  2664.     Display: GVP IV24, DMI Resolver, Firecracker 24; Harlequin;
  2665.              also auto-display for FC24, DMI Resolver and Harlequin.
  2666.              Also BCD-2000A controller driver scripts for single
  2667.              frame recording animations from the IV24 board.
  2668.  
  2669.     Capture: None available from us at this time; note that an EPSON
  2670.              ES300c driver is available from: Metadigm at
  2671.              (714) 253 2828. The driver may be purchased as an upgrade
  2672.              from the ASDG ES300c driver, if you own it, or as a new
  2673.              product. Metadigm operates some rather strange hours at
  2674.              the time this was written, so don't discouraged if you don't
  2675.              get ahold of them on the first call - keep trying! We
  2676.              endorse this scanner driver very highly; we use it every day.
  2677.  
  2678.     Introduction
  2679.     ------------
  2680.     This portion of the document describes, very briefly, each of the Public
  2681.     Interface (PI) modules which are supplied with Imagemaster. All of these
  2682.     modules are installed by the procedure on the main release disk.  In
  2683.     order to use the PI Modules described here, you must complete that
  2684.     installation.
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.                                    -44-                                    
  2697.     Using PI Modules
  2698.     ----------------
  2699.     Once the PI Modules have been installed, using them is very, very
  2700.     easy.  PI Modules are grouped into five logical ``classes'' of
  2701.     operations:
  2702.     
  2703.         F1 - Load ------ decode and load a specific file format
  2704.         F2 - Save ------ encode and save a specific file format
  2705.         F3 - Operate --- perform a function on an image in Imagemaster
  2706.         F4 - Capture --- fetch an image from a device such as a scanner
  2707.         F5 - Generate -- display an image devices such as a 24-bit card
  2708.     
  2709.     To use a module from one of these classes within Imagemaster, you
  2710.     simply press one of five function keys, F1 through F5, as shown at the
  2711.     left of the list in the previous paragraph. After pressing a function
  2712.     key, you will be presented with a list of the available PI Modules of
  2713.     that particular type - pressing F1 brings up a list of all the image
  2714.     reader types available. Simply click upon the reader module you wish
  2715.     to use and select ``done'', or double-click on the module; either way
  2716.     starts the reader running.
  2717.     
  2718.     In the following portion of this document, we will briefly explain
  2719.     each of the modules for all five classes so that you have a reference
  2720.     for the types of operations each PI Module performs; also, each of the
  2721.     five classes will be explained further.
  2722.     
  2723.     Load Modules (F1)
  2724.     -----------------
  2725.     Load Modules are used to decode and load images into Imagemaster, from
  2726.     files which have been saved in unusual or alien (from another machine)
  2727.     file formats.  Load Modules present you with one (or more, in some
  2728.     cases) file requester(s) and allow you to specify where in your
  2729.     computer (on which disk and in which directory) the file is, so that
  2730.     the reader can find it and load it.
  2731.     
  2732.         HotLinks Subscribe
  2733.         ==================
  2734.         The subscribe module allows you to read in a hotlinks ILBM image.
  2735.         After invoking the subscribe module, you will be presented with the
  2736.         hotlinks subscribe requester. The particulars of this and all other
  2737.         hotlinks requesters and operations are covered in the documentation
  2738.         which accompanies the HotLinks Editions package from SoftLogik. Once
  2739.         you have selected a hotlinks image object, it will be loaded into
  2740.         your chosen buffer.
  2741.     
  2742.         At this time, ImageMaster will not automatically re-read buffers that
  2743.         were loaded with the Subscribe module. This is not a bug, but an
  2744.         implementation decision. Generally, ImageMaster will be used to feed
  2745.         PageStream high quality processed image data; given the current state
  2746.         of Amiga software, there are few programs that are likely to be
  2747.         providing Imagemaster with updated images on a regular basis. This
  2748.         situation may change in the future.
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.                                    -45-                                    
  2756.         JPEG/JFIF
  2757.         =========
  2758.         Loads JPEG files which are in JFIF format. JPEG is a file format
  2759.         which is ``lossy'', which means that when the image is changed
  2760.         into JPEG format, some of the image information is lost. For this
  2761.         reason, JPEG images may not be of as high a quality as you usually
  2762.         expect from a 24-bit file format. Note that the compression used
  2763.         by the JPEG process is extremely effective; so much so that images
  2764.         may be only 1/50th of their uncompressed size. Because of this,
  2765.         you may find that a JPEG file which appears to be quite small
  2766.         uncompresses to a very large image, which you may not be able to
  2767.         load into Imagemaster without having additional RAM memory
  2768.         available. JPEG images contain a full 24-bits of color
  2769.         information. For more information on the JPEG format, see the JPEG
  2770.         save module documentation.
  2771.         
  2772.         IFF Palette
  2773.         ===========
  2774.         Loads IFF Palettes from IFF images created by most Amiga software.
  2775.         These palettes are loaded into Imagemaster's internal paint system
  2776.         palette for later use. The currently loaded image is not affected
  2777.         by the loading of this palette. IFF Palettes usually contain 12
  2778.         bits of color information. On occasion, they will contain 24-bits
  2779.         of color information.
  2780.         
  2781.         PMBC
  2782.         ====
  2783.         PMBC image files are loaded by this module. PMBC files are true
  2784.         color, 24-bit images in a completely lossless format, along with
  2785.         an alpha channel and image shape mask. For more information on
  2786.         PMBC, see the PMBC save module documentation.
  2787.         
  2788.         RAW
  2789.         ===
  2790.         RAW image files are files of literally raw image data. There are
  2791.         no extra bits of information describing anything about the image,
  2792.         such as it's size or resolution. For color raw images, there need
  2793.         to be three separate (but related) image files. One will contain
  2794.         the red information, one the green information and one the blue
  2795.         information. The RAW reader will present you with a file requester
  2796.         for each of these files so that you can specify each one. In
  2797.         addition, you need to tell the RAW reader what size the image is,
  2798.         since that information is not in the image file itself. RAW files
  2799.         contain a full 24-bits of color image data. For more information
  2800.         on RAW files, refer to the documentation for the RAW save module.
  2801.         
  2802.         Rendition
  2803.         =========
  2804.         Rendition format files are likely to have been produced by
  2805.         software from Octree corporation, makers of the Caligari line of
  2806.         image rendering systems. Rendition files contain 24-bits of color
  2807.         information, and possibly alpha (transparency) information.
  2808.         
  2809.         Rendition Alpha Channel Data
  2810.         ============================
  2811.         This reader creates a buffer which you may then use as transparency
  2812.         information from the alpha data in a rendition file.
  2813.  
  2814.                                    -46-                                    
  2815.         Board Master
  2816.         ============
  2817.         This reader can load any Board Master file as a B&W graphic image
  2818.         of the PCB traces and structures.
  2819.         
  2820.         PCX reader
  2821.         =========
  2822.         This reader will load 2-256 color PCX files.
  2823.         
  2824.         Animation Frames
  2825.         ================
  2826.         Animations, in this context, are IFF ANIM OP-5 animations such as
  2827.         those produced by Electronic Arts DPaint program, or Imagemaster
  2828.         itself. This reader asks you which frame it is you wish to load
  2829.         from within the animation. ANIM files may contain normal Amiga
  2830.         images, HAM-E images, or DCTV images.
  2831.         
  2832.         Targa
  2833.         =====
  2834.         Targa images (usually) come from IBM computers. There are a number
  2835.         of different Targa formats; some are 24-bits, some 16-bits and so
  2836.         on. So what you get when you load the image will depend upon the
  2837.         particular file format ebing used. These images were invented by
  2838.         Truevision, Inc.
  2839.         
  2840.         SHAM (and AHAM)
  2841.         ===============
  2842.         SHAM, or ``Sliced HAM'', is a format especially designed for the
  2843.         Amiga. These HAM-mode files contain palette information for every
  2844.         scan line, or some groups of scan lines. When these images are
  2845.         loaded, Imagemaster obtains the correct palette information and
  2846.         applies it to the 24-bit image it creates in the new buffer. These
  2847.         images were invented by NewTek Inc. AHAM is a compatible clone
  2848.         from ASDG.
  2849.         
  2850.         DHRZ (and ARZ0/ARZ1)
  2851.         ====================
  2852.         DHRZ, or ``Dynamic Hi-Res'', is a format especially designed for
  2853.         the Amiga. These hires mode files contain palette information for
  2854.         every scan line, or some groups of scan lines. When these images
  2855.         are loaded, Imagemaster obtains the correct palette information
  2856.         and applies it to the 24-bit image it creates in the new buffer.
  2857.         These images were invented by NewTek Inc. ARZ0 and ARZ1 are
  2858.         compatible clones from ASDG.
  2859.         
  2860.         DKB Trace
  2861.         =========
  2862.         These images are created by the PD Ray-Trace program of the same
  2863.         name. They are 24-bit full color images. DKB Trace was written by
  2864.         David K. Buck.
  2865.         
  2866.         RGB8/RGBN
  2867.         =========
  2868.         These formats contain 24-bit and 12-bit color images,
  2869.         respectively. They are created by programs such as Turbo Silver
  2870.         and Imagine, from Impulse Inc.
  2871.  
  2872.  
  2873.                                    -47-                                    
  2874.         FITS
  2875.         ====
  2876.         These images are created by software from NASA (National
  2877.         Aeronautic and Space Administration) and JPL (Jet Propulsion
  2878.         Laboratories). These images (usually) contain images obtained by
  2879.         space probes, or similar data. There are many FITS formats; we
  2880.         have attempted to support the most common ones. The FITS
  2881.         specification is incomplete and contradictory, so some images may
  2882.         not load with this PI Module. If this happens to you, please send
  2883.         one or more of these image to us on a floppy disk and we will
  2884.         attempt to update the reader to handle them.
  2885.         
  2886.         UPB8
  2887.         ====
  2888.         These files are saved from our own 256 color paint system for the
  2889.         HAM-E. UPB8 files contain images with up to 256 24-bit colors.
  2890.         
  2891.     Save Modules (F2)
  2892.     -----------------
  2893.     Save Modules are used to take an image which is already available
  2894.     (loaded) inside Imagemaster, encode them (compress and/or encrypt) and
  2895.     then save them to a file in a specific format suitable for loading by
  2896.     another program, possibly on another type of computer. Save Modules
  2897.     present you with a file requester, which you use to specify a location
  2898.     for the newly created file to be placed.
  2899.  
  2900.         HotLinks Publish
  2901.         ================
  2902.         The Publish module allows Imagemaster to create new hotlinks image
  2903.         files.  You will be given a choice of several image types to create.
  2904.         The choices are as follows:
  2905.  
  2906.           RGB   -   Saves the Image as triplets of RGB data.
  2907.           CMYK  -   Saves the image as quadruplets of CMYK data
  2908.           GREY  -   Saves the image as grey scale data
  2909.           BW    -   Saves the image as pure black or pure white pixels
  2910.       
  2911.         With the exception of the BW format, all other formats ask for the
  2912.         number of bits per color channel. The slider bar allows you to choose
  2913.         from one to eight. This option allows you to cut down the image size
  2914.         at the expense of color resolution. If you do not plan on doing color
  2915.         output, we recommend that you use the GREY format at eight bits. This
  2916.         will give you fairly small image sizes. For color work, use RGB or
  2917.         CMYK at eight bits unless you really need to save space. In that
  2918.         case, cut the number of bits down as needed.
  2919.     
  2920.         If you choose the BW option, you will be asked for a number between 1
  2921.         and 99 which will become the percentage threshold for assigning black
  2922.         or white to each pixel. The luma value of each pixel is computed
  2923.         using the standard NTSC RGB weighting, and is compared against this
  2924.         value. Pixels below the threshold are written as black, while those
  2925.         above the threshold are written as white.
  2926.  
  2927.         After choosing an image type and color resolution (or BW threshold),
  2928.         you will be presented with the hotlinks Publish requester. Fill in
  2929.         the requester and select OK. The buffer will be Published under the
  2930.         new name and will be available to other hotlinks clients.
  2931.  
  2932.                                    -48-                                    
  2933.         HotLinks Update
  2934.         ===============
  2935.         The Update module is almost identical to the Publish module. It
  2936.         differs only in the requester that is offered by hotlinks. You will
  2937.         be given a list of available hotlinks image objects and you must
  2938.         choose one of them to update. Note that you may update any hotlinks
  2939.         image with any image you wish.  You do not need to subscribe to the
  2940.         image before you can update it, nor does the new image need to be the
  2941.         same size or type as the old image.
  2942.  
  2943.         You may get a hotlinks error if another hotlinks program has the
  2944.         hotlinks image locked. You should be able to fix this by closing the
  2945.         file in the other application. For example, if you have a hotlinks
  2946.         image open in Soft Logik's BME, you cannot update it from within
  2947.         Imagemaster until you close it in BME.
  2948.  
  2949.         JPEG/JFIF
  2950.         =========
  2951.         JPEG (Joint Photographic Experts Group) format images are highly
  2952.         compressed, 24-bit color accurate images. No mask or alpha channel
  2953.         information is saved; the image compression method used is
  2954.         ``lossy''. This save module provides you with the ability to set
  2955.         the compression used from light to heavy. More compression results
  2956.         in more loss of image detail.
  2957.         
  2958.         JPEG is great for some things... and absolutely the worst thing to
  2959.         use for others. Consider: JPEG loses some quality when it
  2960.         compresses an image. Not a lot, if you use minimum compression,
  2961.         but still, some loss of quality occurs. If you're a scientist or a
  2962.         doctor, don't think "loses quality", instead think "loses and
  2963.         changes data"!
  2964.  
  2965.         Consider what happens if you're working on this image over a
  2966.         number of sessions. Each time you save and load the image in JPEG
  2967.         format, it deteriorates a little more (or a lot, if you compress
  2968.         it a great deal). The lesson, and the rule that comes from it, is
  2969.         obvious:
  2970.  
  2971.             Don't EVER use JPEG as a storage format for an image you're
  2972.             working on, or for an image that will be used in another image
  2973.             (unless you positively KNOW that the loss of quality won't
  2974.             matter, for whatever reason).
  2975.  
  2976.         JPEG is really good for archival storage of images you like, but
  2977.         aren't "serious" about. On minimum compression, a single use of
  2978.         the JPEG technique on an image will not seriously degrade it. And
  2979.         that's what you'd normally do with an archived image. Store it
  2980.         once, then load it as you please to view it, as many times as you
  2981.         like.
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.                                    -49-                                    
  2992.         PMBC
  2993.         ====
  2994.         PMBC stands for Plane Minimizing Bitmap Compression. It is a
  2995.         format invented at Black Belt Systems for lossless compression of
  2996.         high-color images. Using PMBC results in an image file which
  2997.         generally will be considerably smaller than the same file in 24-
  2998.         bit IFF format, the normal Amiga standard. PMBC is especially good
  2999.         at compressing images with gradients and areas of monochrome color
  3000.         in them. PMBC is not good at compressing images which contain
  3001.         large amounts of dither, such as an image which has been rendered
  3002.         to 256 colors for VGA use. You can expect an average improvement
  3003.         in storage requirements of about 16% over IFF-24; many images will
  3004.         exceed this average by a large amount, particularly those with
  3005.         monochromatic (by which we mean B&W, cyan, magenta, yellow, red,
  3006.         green or blue) information.
  3007.         
  3008.         Rendition
  3009.         =========
  3010.         These images are 24-bit color files. Used with Octree Software
  3011.         products on the Amiga.
  3012.         
  3013.         Vista Binary
  3014.         ============
  3015.         These images are actually altitude maps in a special binary format
  3016.         that Virtual Reality's VistaPro can read. Once saved in this
  3017.         format, VistaPro can load the file, and then generate a landscape
  3018.         from the data Imagemaster placed in the file.
  3019.         
  3020.         RAW
  3021.         ===
  3022.         RAW images contain no control information. Images are saved left
  3023.         to right, top to bottom, one byte per pixel in three files: red,
  3024.         green and blue. A five-by-five black image that had a dark red
  3025.         spot near the upper left would be saved as follows:
  3026.         
  3027.             red file           green file         blue file
  3028.             ----------------------------------------------------
  3029.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  3030.             00 33 00 00 00     00 00 00 00 00     00 00 00 00 00
  3031.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  3032.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  3033.             00 00 00 00 00     00 00 00 00 00     00 00 00 00 00
  3034.        
  3035.        For each of the preceeding three files, the bytes are saved in the
  3036.        following order:
  3037.        
  3038.                                  All Files
  3039.                                --------------
  3040.                                01 02 03 04 05
  3041.                                06 07 08 09 10
  3042.                                11 12 13 14 15
  3043.                                16 17 18 19 20
  3044.                                21 22 23 24 25
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.                                    -50-                                    
  3051.        RGB8
  3052.        ====
  3053.        This file format is an Impulse file format. Images saved in this
  3054.        format can be loaded into Imagine as various brushes and maps.
  3055.        RGB8 is a 24-bit byte-level non-lossy compressed format, which is
  3056.        generally not as efficient as IFF24 or PMBC; for this reason, you
  3057.        normally would only use this for compatibility with Impulse
  3058.        products.
  3059.        
  3060.        Targa
  3061.        =====
  3062.        This file format is used with Truevision's Targa boards and related
  3063.        software on the IBM PC.
  3064.     
  3065.     Process Modules (F3)
  3066.     --------------------
  3067.     Process Modules are used to perform operations upon an image which is
  3068.     already loaded into Imagemaster. These operations could be something
  3069.     as simple as applying contrast, or very complex, somthing like the
  3070.     morph function in Imagemaster. Each process will present you with a
  3071.     series of control panels appropriate for it's particular needs.
  3072.  
  3073.         HotLinks Info
  3074.         =============
  3075.         The Info module simply presents you with the hotlinks file requester
  3076.         and then allows you to examine and modify the information associated
  3077.         with a hotlinks file.
  3078.  
  3079.         HIST
  3080.         ====
  3081.         This module will create a text-file containing detailed numeric
  3082.         reports on all 256 levels each of red, green, blue, average
  3083.         (R + G + B) / 3, and Luma ((R x .30) + (G x .59) + (B x .11)).
  3084.         The file will detail each of these five reports, mark the
  3085.         name of the image and the total number of pixels involved
  3086.         in the analysis. Each level will have a number of pixels
  3087.         data item. Lines in the text file which begin with the
  3088.         asterisk (*) character are not data lines. Other lines have
  3089.         the format:
  3090.         
  3091.             cNNN:v
  3092.         
  3093.         Where "c" is R, G, B, L or A for Red, Green, Blue, Luma and
  3094.         Average; where "NNN" is a three digit number from "000" to
  3095.         "255", leading zeros always present. The colon character ":"
  3096.         is always present in a data line. "v" is a number without leading
  3097.         zeros that may range from "0" to the number of pixels in the
  3098.         region being analyzed.
  3099.         
  3100.         This module is specifically intended for those analyzing image
  3101.         data.
  3102.     
  3103.         KOCH
  3104.         ====
  3105.         This PI Module generates a Koch fractal snowflake into the image
  3106.         which is the primary image.
  3107.  
  3108.  
  3109.                                    -51-                                    
  3110.         Graphs
  3111.         ======
  3112.         Executing the graph PI Module will bring up a file requester. You
  3113.         should select a graph file such as EXAMPLE.GRAPH . The graph will
  3114.         then be drawn in a new buffer. There is also an example graph file
  3115.         called EXAMPLE.table which you can use to see how to prepare graphs.
  3116.  
  3117.         Tesselate
  3118.         =========
  3119.         The PI Module will provide you with a choice of triangle edge
  3120.         length.  This is the size of each smooth area on the final result.
  3121.         Then you are presented with the normal area selection panel to
  3122.         identify the area you want to tessellate on.
  3123.  
  3124.         Erode
  3125.         =====
  3126.         'Brightness Erode' thins brighter areas of the image and expands
  3127.         darker areas. This can result in a water color paint like effect,
  3128.         especially on dithered images.
  3129.         
  3130.         'Brightness Dilate' does the opposite to Erode. It has a dramatic
  3131.         effect on human portraits.  Small cell sizes of 2 to 4 are
  3132.         recommended.
  3133.         
  3134.         Pressing F1 will provide you with a choice between 'Erode' and
  3135.         'Dilate'. Then you adjust the cell size.  A larger cell size will
  3136.         yield more dramatic results.  Then you are presented with the
  3137.         normal area selection panel to identify the area you want to
  3138.         change.
  3139.  
  3140.     
  3141.     Capture Modules (F4)
  3142.     --------------------
  3143.     Capture Modules operate external equipment in such a way as to allow
  3144.     you to bring an image into Imagemaster from a real-life source, such
  3145.     as an electron microscope, video camera, flatbed or handheld scanner,
  3146.     etc. Each Capture Module will provide you with the appropriate
  3147.     controls to perform the operation it is intended for.
  3148.     
  3149.         ES-300c
  3150.         =======
  3151.         This module is commercial; it is available from Metadigm, Inc.
  3152.         You can contact Metadigm at (714) 253-2828. The ES-300c scanner
  3153.         module is available stand-alone or as an upgrade from the ASDG
  3154.         software for the ES-300c (the upgrade allows you to use the cable
  3155.         that came with the ASDG software). If you do own the ASDG scanner
  3156.         module, we strongly recommend the Metadigm upgrade; the
  3157.         module's performance is better and the module is much easier to
  3158.         use.
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.                                    -52-                                    
  3169.     Display Modules (F5)
  3170.     --------------------
  3171.     Display Modules are essentially the opposite of Capture Modules. They
  3172.     allow you to take an image currently loaded into Imagemaster and
  3173.     ``send'' it to a display device such as a 24-bit display card, or a
  3174.     photographic imager like the Polaroid Digital Palette. The most common
  3175.     use of a Display Module is to view an image on a high-color device.
  3176.     
  3177.         IV-24
  3178.         =====
  3179.         This PI Module supports GVP's 24-bit display card, the IV-24. It
  3180.         provides output to the IV-24 display only. It cannot be used for
  3181.         automatic update operations, as the IV-24 shares the screen with
  3182.         the Amiga's display.
  3183.         
  3184.         FC24
  3185.         ====
  3186.         This PI Module supports Impulses FireCracker 24 display card. If
  3187.         you place the script (rxpi:imfc24r.rexx) in the "Redraw Script"
  3188.         text entry field found in the Display panel, and activate the
  3189.         "Call Redraw Script" button in the display panel, then as soon as
  3190.         Imagemaster completes redrawing on the Amiga screen, it will also
  3191.         redraw on the FC24 screen. This allows continuous monitoring of
  3192.         the image on the second monitor.
  3193.         
  3194.         DMI Resolver
  3195.         ============
  3196.         This PI Module supports Digital Micronics ``Resolver'' 256-color
  3197.         24-bit display board. If you place the script (rxpi:resolver.rexx)
  3198.         in the "Redraw Script" text entry field found in the Display
  3199.         panel, and activate the "Call Redraw Script" button in the display
  3200.         panel, then as soon as Imagemaster completes redrawing on the
  3201.         Amiga screen, it will also redraw on the Resolver screen. This
  3202.         allows continuous monitoring of the image on the second monitor.
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.                                    -53-                                    
  3228.     Adding new aftermarket PI modules
  3229.     ---------------------------------
  3230.     To add any new PI Module (PIM), you'll follow these simple steps:
  3231.  
  3232.         1 - Copy the ARexx portion of the PIM into RXPI:
  3233.         2 - Copy the command portion(s) of the PIM into CMPI:
  3234.         3 - Edit the file CMPI:list.list to activate the PIM
  3235.             (Each PIM .doc file should show you the single line needed)
  3236.         4 - Print out the PIM documentation file for future reference
  3237.  
  3238.     The first two steps are basically self-explanatory. The third is easy
  3239.     to do, but you do need to understand what the file CMPI:list.list does
  3240.     for you.
  3241.  
  3242.     Essentially, the file CMPI:list.list is a list (no surprise, eh?) of
  3243.     the available PIMs you have installed. The list also contains
  3244.     "keywords" that indicate what "class" of PIM it is. We have currently
  3245.     defined the following classes of PIMs:
  3246.  
  3247.         1 - Reader;  these load various file formats
  3248.         2 - Writer;  these save various file formats
  3249.         3 - Effect;  these perform effects upon an already loaded image
  3250.         4 - Capture; these retrieve images from peripheral hardware devices
  3251.         5 - Display; these provide images to peripheral hardware devices
  3252.  
  3253.     At times, a PIM may fall into more than one catagory, particularly in
  3254.     the case of file handling PIMs. For instance, the JFIF/JPEG PIM can
  3255.     load and save JPEG files, so it is both a reader and a writer. We have
  3256.     configured the system so that the module will show in both lists in a
  3257.     clear fashion.
  3258.  
  3259.     When you add a PIM to the CMPI:list.list file, you add one line of
  3260.     text which names the ARexx script, describes the capabilties the PIM
  3261.     provides, and has the keywords which let the image processor know what
  3262.     class(es) the PIM falls into. Here's a possible list entry for the IFF
  3263.     Palette reader PIM as an example:
  3264.  
  3265.         "palrd",     "IFF Palette reader",            load
  3266.  
  3267.     The first portion of the line ("palrd") is the name of the ARexx
  3268.     script without the ".rexx" extension and without any path. The
  3269.     extension ".rexx" is added to the end of this field automatically and
  3270.     the string "rxpi:" is used as the path.
  3271.  
  3272.     The second portion of the line ("IFF Palette reader") is the
  3273.     description of the PIM's capabilities. This portion of the line
  3274.     actually appears in the list requester inside the image processor.
  3275.  
  3276.     The third portion of the line (load) consists of a keyword which
  3277.     defines the class which the IFF Palette reader PIM falls into; load is
  3278.     the keyword for a Reader.
  3279.  
  3280.     You can add comments to the list file on any line by simply beginning
  3281.     the line with an "*" (asterisk) character.
  3282.  
  3283.  
  3284.  
  3285.  
  3286.                                    -54-                                    
  3287.     You will also see lines in the CMPI:list.list file which begin with an
  3288.     "!"  (exclamation point) character. These lines are text lines which
  3289.     are placed next to the list requester when it appears; generally, you
  3290.     won't want to change these lines, although you certainly can. Here are
  3291.     the three types of lines together:
  3292.  
  3293.         * comment line; has no effect and may contain anything
  3294.         ! appears on-screen, next to the list requester itself
  3295.         * the next lines add entries to the list requester
  3296.         "jpeg load", "JPEG/JFIF file load",           load
  3297.         "jpeg save", "JPEG/JFIF file save",           save
  3298.         RGBxr,     "Impulse RGB8/RGBN file load",     load
  3299.         eroder,    "Erode (F/X)",                     effect
  3300.         imiv24r,   "GVP IV-24 Display",               display
  3301.  
  3302.     Examining the CMPI:list.list file will be instructive if you're
  3303.     interested in custom modifications.
  3304.  
  3305.          Note
  3306.          ----
  3307.          When you install a new PI system, the "list.list" file will
  3308.          be replaced with a new version. Your old list.list file will be
  3309.          renamed to list.list.old; you'll still find it in the CMPI:
  3310.          assigned location. In order to reinstall your aftermarket PI
  3311.          modules, you'll have to use a text editor to copy the lines from
  3312.          the .old file to the current list.list file. Until this is done,
  3313.          your aftermarket PI modules will not show in the PI requesters.
  3314.  
  3315.  
  3316.     Removing PI Modules from the list:
  3317.     ----------------------------------
  3318.     Edit the file "CMPI:list.list" and simply remove the single line that
  3319.     describes the PI Module you want to delete. This line will not begin
  3320.     with either a "!"  or a "*" character. If you do not wish to remove
  3321.     the line, but only want to temporarily disable it, place an asterisk
  3322.     (*) before all other characters on that line, and the line will be
  3323.     treated as if it were a comment (that is, it will be ignored).
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.                                    -55-                                    
  3346.     ARexx Port Names
  3347.     ================
  3348.     Here's something we inadvertantly left out of the manual... the port
  3349.     name for the ARexx ports in Imagemaster, Imagemaster F/c, or Image
  3350.     Professional. Here it is:
  3351.     
  3352.                                   IM_Port             
  3353.     
  3354.                                  ----------
  3355.     
  3356.     Render command changed
  3357.     ======================
  3358.     On page 177 of the manual, the parameters given are not complete.
  3359.     Parameter number six <name>, described on page 178 (correctly), is
  3360.     missing.  Make sure you take this into account if you are using the
  3361.     render command. Here is the correct command string:
  3362.     
  3363.     render <lace> <width> <height> <mode> <usep> <name> [cols]
  3364.     
  3365.                                  ----------
  3366.     
  3367.     Filerequest command changed
  3368.     ===========================
  3369.     This command now returns the string 'FR_CANCELLED' if the user cancels
  3370.     the file requester. This allows you to abort operations in progress.
  3371.     
  3372.                                  ----------
  3373.     
  3374.     Newbuf command (changed)
  3375.     ========================
  3376.     The newbuf command now has the following syntax:
  3377.     
  3378.         newbuf <width> <height> [name] [MASK]
  3379.     
  3380.     The new keyword MASK allows you to specify a new buffer with a local
  3381.     mask plane available. This is required if you are writing a PI Load
  3382.     module that will need a local mask (for a non-rectangular image).
  3383.     
  3384.     Note that there are two optional parameters here; you'll need to
  3385.     provide a NULL string for the "name" parameter if you want the
  3386.     automatic naming to work, as in the following example:
  3387.     
  3388.             'newbuf "'||width||'","'||height||'","","MASK"';
  3389.     
  3390.                                  ----------
  3391.     
  3392.     Firecracker-specific manipulation (new commands)
  3393.     ================================================
  3394.     The ARexx commands FCHIDE and FCSHOW have been added; these turn the
  3395.     FC24 display on and off. They have no effect (and cause no error) in
  3396.     the other versions of the image processor.
  3397.     
  3398.                                  ----------
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.                                    -56-                                    
  3405.     Finding the mouse location from ARexx (new command)
  3406.     ===================================================
  3407.     The ARexx command "WHEREMOUSE" returns the mouse's current co-
  3408.     ordinates using the image resolution.
  3409.     
  3410.                                  ----------
  3411.     
  3412.     coords <show> <top> (new command)
  3413.     =================================
  3414.     This allows you to turn the co-ordinate facility on and off from
  3415.     ARexx, and also to control the placement of them.
  3416.     
  3417.     If show is 1, then co-ordinates are on. If 0, then they are off.  If
  3418.     top is 0, then the co-ordinates are displayed at the top of the
  3419.     screen. If 1, then at the bottom.
  3420.     
  3421.                                  ----------
  3422.     
  3423.     grid <on> <xgrid> <ygrid> <xoff> <yoff> (new command)
  3424.     =====================================================
  3425.     This command allows you to set a particular grid. When on is 0, the
  3426.     grid is off. When 1, grid is on. xgrid and ygrid allow you to set the
  3427.     spacing between grid lines; xoff and yoff allow you to set any offset
  3428.     from the top left corner (0,0) of the image.
  3429.     
  3430.                                  ----------
  3431.     
  3432.     newasprimary (new command)
  3433.     ==========================
  3434.     This is similar to the newbuf ARexx command, except that the buffer it
  3435.     creates is always the primary buffer. The newbuf command would create
  3436.     the new buffer as the primary buffer only if there was no previously
  3437.     existing primary buffer; otherwise, the new buffer was just added as
  3438.     ``another'' buffer in the system. When you use OPTIONS RESULTS in the
  3439.     ARexx script so that the image processor knows it can return data to
  3440.     you, the number of the buffer created will be returned.
  3441.     
  3442.     This new command ensures that the newly created buffer will be the
  3443.     primary buffer, regardless of previously existing buffers in the
  3444.     system.
  3445.     
  3446.                                  ----------
  3447.     
  3448.     newbuf (changed)
  3449.     ================
  3450.     The ARexx newbuf command now returns the number of the buffer it
  3451.     creates if you use OPTIONS RESULTS in the ARexx script.
  3452.     
  3453.                                  ----------
  3454.     
  3455.     fromdigiview (changed)
  3456.     ======================
  3457.     The ARexx fromdigiview command now returns the number of the buffer it
  3458.     creates if you use OPTIONS RESULTS in the ARexx script.
  3459.     
  3460.                                  ----------
  3461.  
  3462.  
  3463.                                    -57-                                    
  3464.     dome (changed)
  3465.     ==============
  3466.     The ARexx dome command now has an optional extra parameter,
  3467.     "effect". You call it this way:
  3468.  
  3469.         'dome 60 50'; /* dome <radius> [effect] */
  3470.     or...
  3471.         'dome 60';
  3472.  
  3473.     If you don't use the extra parameter, it defaults to 100%
  3474.  
  3475.                                   ----------
  3476.     caric (changed)
  3477.     ===============
  3478.     The ARexx caric command now has an optional extra parameter,
  3479.     "effect". You call it this way:
  3480.  
  3481.         'caric 60 50'; /* caric <radius> [effect] */
  3482.     or...
  3483.         'caric 60';
  3484.  
  3485.     If you don't use the extra parameter, it defaults to 100%
  3486.  
  3487.                                  ----------
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.                                    -58-                                    
  3523.     imagemaspect (new command)
  3524.     ==========================
  3525.     This command returns the aspect ratio of the chosen buffer.
  3526.     
  3527.     'imagemaspect '||BUFFERNUM'; /* get aspect ratio */
  3528.     
  3529.     loadimask (new command)
  3530.     =======================
  3531.     saveimask (new command)
  3532.     =======================
  3533.     This command loads the image mask (the valid image area mask) from a
  3534.     saved mask file.
  3535.     
  3536.     'loadimask <complete_filename> [mode]'
  3537.            where...
  3538.                       mode   1 = Replace existing mask (default) 
  3539.                              2 = OR
  3540.                              3 = AND
  3541.                              4 = XOR
  3542.                              5 = MINUS
  3543.    
  3544.     The opposite command is:
  3545.         'saveimask <complete_filename>';
  3546.     
  3547.     loadmask (new command)
  3548.     ======================
  3549.     savemask (new command)
  3550.     =======================
  3551.     This command loads the main mask (the region selection mask) from a
  3552.     saved mask file.
  3553.     
  3554.     'loadmask <complete_filename> [mode]'
  3555.            where...
  3556.                       mode   1 = Replace existing mask (default) 
  3557.                              2 = OR
  3558.                              3 = AND
  3559.                              4 = XOR
  3560.                              5 = MINUS
  3561.    
  3562.     The opposite command is:
  3563.         'savemask <complete_filename>';
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.                                    -59-                                    
  3582.     backuptoundo (new command)
  3583.     ==========================
  3584.     This command has specifically included to enhance the public interface
  3585.     capabilities. If you are writing an external process, and are
  3586.     operating upon the contents of the Primary buffer, using this command
  3587.     before you perform your process will copy the initial contents of the
  3588.     Primary buffer into the UnDo buffer, allowing the user to UnDo the
  3589.     changes caused by your process.
  3590.     
  3591.                                  ----------
  3592.     
  3593.     coords <show> [showattop] (new command)
  3594.     =======================================
  3595.     Here, <show> is required, 0 means no, 1 means yes.
  3596.     
  3597.                                  ----------
  3598.     
  3599.     grid <on> <xgrid> <ygrid> <xoffs> <yoffs> (new command)
  3600.     =======================================================
  3601.     Here, <on> is required and should be 1 for on, 0 for off.  If <on> is
  3602.     present, then the other four parameters must also be.  <xgrid> and
  3603.     <ygrid> define the spacing of the grid. <xoffs> and <yoffs> define the
  3604.     offset from the top left edge of the image where the first vertice of
  3605.     the grid will occur. These last two parameters must be values less
  3606.     than the first two.
  3607.     
  3608.                                  ----------
  3609.     
  3610.     autoactivate (new command)
  3611.     ==========================
  3612.     The autoactivate ARexx command has been added so that you can change
  3613.     the state of the image processor's automatic re-activation of it's
  3614.     main control panel when it completes all pending operations.
  3615.     
  3616.     Since there may be times when you have another process running, and
  3617.     don't want the image processor to reactivate it's window during that
  3618.     time, this command was added.
  3619.     
  3620.     Use it as autoactivate 0 to turn autoactivation off, and use it as
  3621.     autoactivate 1 to turn it back on again.
  3622.     
  3623.     If you are passing control to another program, make sure that
  3624.     autoactivate 0 is in the ARexx script before the other program is
  3625.     called; and when control is returned to the image processor, make sure
  3626.     that autoactivate 1 is in the script before you bring up the the image
  3627.     processor screens. Bringing the the image processor's display to the
  3628.     front with autoactivate off may seriously confuse the user.
  3629.     
  3630.                                  ----------
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.                                    -60-                                    
  3641.     setpalette (new command)
  3642.     ========================
  3643.     This ARexx command has been added so that the color of any of the 256
  3644.     palette entries may be set from a script. The PI Module which is now
  3645.     supplied uses this command to set palette entries once it has read the
  3646.     IFF file and extracted the CMAP (color map) chunk from within the
  3647.     image file. Use is simple:
  3648.  
  3649.         'setpalette' entry R G B;
  3650.  
  3651.     Where the parameters are defined as:
  3652.  
  3653.       entry: [0-255] (which palette color of 256)
  3654.           R: [0-255] (intensity)
  3655.           G: [0-255] (intensity)
  3656.           B: [0-255] (intensity)
  3657.  
  3658.     Here is an ARexx fragment that sets the palette to a grey scale:
  3659.  
  3660.         do i=0 to 255
  3661.           'setpalette' i i i i;
  3662.           end;
  3663.  
  3664.     Here is an ARexx fragment that sets the palette to all black:
  3665.  
  3666.         do i=0 to 255
  3667.           'setpalette' i 0 0 0;
  3668.           end;
  3669.  
  3670.     Here is an ARexx fragment that sets the palette to a reverse grey scale:
  3671.  
  3672.         do i=0 to 255
  3673.           'setpalette' i 255-i 255-i 255-i;
  3674.           end;
  3675.  
  3676.                                 ----------
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.                                    -61-                                    
  3700.     DISPLAYMODE (new command)
  3701.     =========================
  3702.     DISPLAYMODE <mode> <lace>  [quality] ------ for Image Professional
  3703.     DISPLAYMODE <mode> <lace> ----------------- for Imagemaster
  3704.     DISPLAYMODE <mode> <res> ------------------ for Imagemaster F/c
  3705.     
  3706.     This command allows you to change the current display mode within the
  3707.     image processing software. It has no effect upon the image itself, nor
  3708.     upon output render results. In the following table, "Q" is used to
  3709.     specify the [quality] switch.
  3710.     
  3711.                      for IP <mode> is 0 = luma
  3712.                                       1 = avg
  3713.                                       2 = reg Ord Dither
  3714.                                       3 = HAM-E 24 bit (also depends on Q flag)
  3715.                                       4 = HAM-E 18 bit (also depends on Q flag)
  3716.                                       5 = EDD 256 colors
  3717.                             <lace>    0 = non-lace
  3718.                                       1 = lace display
  3719.                          [quality]    0 = normal
  3720.                                       1 = high quality (HQ)
  3721.     
  3722.                      for IM <mode> is 0 = luma (in 16 shades)
  3723.                                       1 = avg
  3724.                                       2 = 16 color hi-res
  3725.                                       3 = 32 color lo-res
  3726.                                       4 = half-brite
  3727.                                       5 = HAM (fast)
  3728.                                       6 = HAM (quality)
  3729.     
  3730.                    for IMFc <mode> is 0 = luma (256 shades)
  3731.                                       1 = avg
  3732.                                       2 = color (24 bit)
  3733.       (the second parameter is then <resolution>)
  3734.                                       0 = low res
  3735.                                       1 = med-res
  3736.                                       2 = med-res 2
  3737.                                       3 = hi-res
  3738.                                       
  3739.                                 ----------
  3740.     
  3741.     pal (new command)
  3742.     =================
  3743.     This is used with options results in ARexx. Reports 0 for NTSC and
  3744.     1 for PAL modes. Used to determine how Imagemaster is running at
  3745.     the time of macro execution.
  3746.     
  3747.                                 ----------
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.                                    -62-                                    
  3759.     autoprimary <mode> (new command)
  3760.     ================================
  3761.     This command puts the image manipulation software into a mode where
  3762.     any newly allocated buffer is automatically made the primary buffer.
  3763.     This makes ARexx scripting, especially in Sequence or Morph scripting,
  3764.     much easier to deal with.
  3765.  
  3766.       mode = 0  new buffers do not become the primary unless there are none
  3767.       mode = 1     "        always become primary
  3768.       
  3769.                                 ----------
  3770.                                 
  3771.     newbrush <bufferNumber> (new command)
  3772.     =====================================
  3773.     Selects the chosen buffer as the current brush, as used in
  3774.     the paint tool panel.
  3775.       
  3776.                                 ----------
  3777.  
  3778.     newblend <bufferNumber> (new command)
  3779.     =====================================
  3780.     Selects the chosen buffer as the current blend, as used for
  3781.     alpha control purposes (under the Set Blend panel).
  3782.       
  3783.                                 ----------
  3784.  
  3785.     loadassecondary <name> (new command)
  3786.     ====================================
  3787.     Loads an image file and makes it the secondary buffer. Uses
  3788.     the image path and extension set with the appropriate ARexx
  3789.     commands or last typed into Imagemaster's requester. It
  3790.     returns the buffer number of the new buffer.
  3791.       
  3792.                                 ----------
  3793.  
  3794.     loadasblend <name> (new command)
  3795.     ================================
  3796.     Loads an image file and makes it the blend (alpha) buffer.
  3797.     Uses the image path and extension set with the appropriate
  3798.     ARexx commands or last typed into Imagemaster's requester. It
  3799.     returns the buffer number of the new buffer.
  3800.       
  3801.                                 ----------
  3802.  
  3803.     loadasbrush <name> (new command)
  3804.     ================================
  3805.     Loads an image file and makes it the brush buffer. Uses the
  3806.     image path and extension set with the appropriate ARexx
  3807.     commands or last typed into Imagemaster's requester. It
  3808.     returns the buffer number of the new buffer.
  3809.       
  3810.                                 ----------
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.                                    -63-                                    
  3818.     render (changed)
  3819.     ================
  3820.     The following replaces the description of the RENDER Arexx command on
  3821.     pages 177 and 178 of the manual.
  3822.     
  3823.     Summary of changes: -
  3824.     
  3825.                 *  19 new render modes
  3826.                 
  3827.                 *  No more size restrictions, except when rendering for
  3828.                    DCTV (as required by the device).
  3829.                    
  3830.                 *  Number of colors defaults to the maximum for that
  3831.                    render mode.
  3832.     
  3833.     Detail for ARexx render command
  3834.     -------------------------------
  3835.     
  3836.     render <lace> <width> <height> <mode> <usepalette> <name> [numcolors]
  3837.     ---------------------------------------------------------------------
  3838.     
  3839.     <lace>    0 = no, 1 = yes.
  3840.               Ignored for GIF and the non-viewable IFF renders.
  3841.     
  3842.     <width>   render image width.
  3843.               Only restricted to between 640 and 736 for DCTV.
  3844.     
  3845.     <height>   render image height.
  3846.                Only restricted when rendering for the DCTV to between 
  3847.                200 and 241 for non-lace and between 400 to 481 for lace.
  3848.     
  3849.     <mode>
  3850.     
  3851.     1 = HAM-E mode, 18 bit
  3852.     2 = HAM-E mode, 24 bit (extended color space dithering)
  3853.     3 = Register mode for the HAM-E device, undithered
  3854.     4 = Register mode for the HAM-E device, dithered (EDD)
  3855.     5 = Register mode for the HAM-E device, Black and White average
  3856.     6 = Register mode for the HAM-E device, Black and White luma
  3857.     
  3858.     7 = 256 color GIF
  3859.     
  3860.     8 =  16 shade Amiga hi-res - Black and White Average
  3861.     9 =  16 shade Amiga hi-res - Black and White Luma
  3862.     10 = 16 color Amiga hi-res - color
  3863.     11 = 32 color Amiga lo-res
  3864.     12 = 64 color Amiga half-brite
  3865.     13 = Amiga HAM
  3866.     
  3867.     14 = DCTV 3-bitplane (width must be 640 to 736, and height 200 to 241,
  3868.                                                     or         400 to 482)
  3869.     15 = DCTV 4-bitplane (width must be 640 to 736, and height 200 to 241,
  3870.                                                     or         400 to 482)
  3871.                      
  3872.                      <continued next page>
  3873.  
  3874.  
  3875.  
  3876.                                    -64-                                    
  3877.     16 = Amiga Hi-Res with 1 bitplane  and 2 colors
  3878.     17 = Amiga Hi-Res with 2 bitplanes and 4 colors or less
  3879.     18 = Amiga Hi-Res with 3 bitplanes and 8 colors or less
  3880.     19 = Amiga Lo-Res with 1 bitplane  and  2 colors
  3881.     20 = Amiga Lo-Res with 2 bitplanes and  4 colors or less
  3882.     21 = Amiga Lo-Res with 3 bitplanes and  8 colors or less
  3883.     22 = Amiga Hi-Res with 4 bitplanes and 16 colors or less
  3884.     23 = Amiga IFF render (not displayed ) with 6-bitplanes and 64 colors
  3885.     24 = Amiga IFF render (not displayed ) with 7-bitplanes and 128 colors
  3886.     25 = Amiga IFF render (not displayed ) with 8-bitplanes and 256 colors
  3887.     
  3888.     <usepalette>   If 0 the image colors will be chosen; if 1 then the
  3889.                    currently loaded palette will be used.
  3890.                    
  3891.     <name>     The image name used to save the rendered image to.
  3892.                The full name will be a combination of the render path
  3893.                that was set with the   RENDERPATH command, this name,
  3894.                and the extension that was set with the 
  3895.                RENDEREXT command.
  3896.      
  3897.     
  3898.     [numcolors]    The number of colors used to render with. This 
  3899.                    defaults to the maximum number of colors
  3900.                    possible for each render method.
  3901.                    
  3902.                    This only indicates the number of registers for
  3903.                    Amiga HAM and HAM-E modes even though the actual
  3904.                    number of displayable colors is much higher.
  3905.                    
  3906.                    (Ignored for DCTV renders.)
  3907.                    
  3908.                                 ----------
  3909.  
  3910.     CANCEL command (new command)
  3911.     ============================
  3912.     This command is to be used in sequence processor scripts. Its effect is
  3913.     the same as when the user presses cancel with the mouse; it provides a
  3914.     method for a script to terminate the sequence operation because of some
  3915.     internally detected reason (failure, usually).
  3916.     
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.  
  3929.  
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.                                    -65-                                    
  3936.     Public Interface
  3937.     ================
  3938.     
  3939.     Provided PI Modules
  3940.     -------------------
  3941.     We have provided a number of PI modules with the image processor.
  3942.     These PI Modules provide:
  3943.     
  3944.         * JPEG load and save capability
  3945.         * PMBC load and save capability
  3946.         * RAW load and save (both color and B&W)
  3947.         * Direct insertion of an image to the FireCracker 24
  3948.     
  3949.     Black Belt Systems has accomplished a number of ``firsts'' with these
  3950.     PI Modules; Our image processing software is the first commercial
  3951.     software on the Amiga to provide JPEG load and save capability, and
  3952.     the only software of any kind to provide PMBC save and load capability.
  3953.     Our PI system is the very first example of a free and open image
  3954.     processing system, not to be confused with "fee" systems from other
  3955.     manufacturers where the developer must pay for the "privilege" of
  3956.     expanding the product. To develop modules for Imagemaster, all you need
  3957.     are the skills to do so; we'll help all we can, and for free! Call our
  3958.     technical support line at (406) 367-5509 anytime during mountain time
  3959.     business hours for developer support.
  3960.     
  3961.                                  ----------
  3962.     
  3963.     Installing the PI Modules
  3964.     =========================
  3965.     To install the provided modules, go into the disk in the release set
  3966.     that contains them and read the file entitled PI_Exec.doc. This gives
  3967.     explicit directions on installation and use.
  3968.     
  3969.                                  ----------
  3970.     
  3971.     Image Locking
  3972.     =============
  3973.     This capability provides a safety net under all Public Interface
  3974.     Modules. What happens is that when an ARexx script LOCKs a buffer, it
  3975.     cannot be changed from inside the image processing software; this
  3976.     allows external processes to run long operations without the concern
  3977.     that user might quit the program and pull the rug out from under, so
  3978.     to speak. Image locking is done with the following commands:
  3979.     
  3980.         LOCKIMAGE   <buffer number>
  3981.         UNLOCKIMAGE <buffer number>
  3982.         UNLOCKALL
  3983.     
  3984.     Note that the NEWBUF command now returns the buffer number if you set
  3985.     OPTIONS RESULTS before you call it. This conveniently provides the
  3986.     buffer number to lock without any further ARexx manipulation.
  3987.     
  3988.                                  ----------
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.                                    -66-                                    
  3995.     Unlock Buffer (in Buffer Panel)
  3996.     ===============================
  3997.     This is the "escape hatch" for the user if they believe that a buffer
  3998.     has been left locked by mistake. This should rarely, if ever, be used
  3999.     by the normal user. However, if you are developing PI Modules, it may
  4000.     come in very handy.
  4001.     
  4002.     Unlocking a locked buffer when it is still being accessed by an
  4003.     external process means that the image processor can delete the buffer,
  4004.     or even exit and delete everything - which means that the task that
  4005.     was writing into the buffer will now be writing in what the system
  4006.     thinks is free memory - very scary stuff. This button warns the user
  4007.     that unlocking isn't advised normally.
  4008.     
  4009.                                  ----------
  4010.     
  4011.     Access to any buffer for PI Modules
  4012.     -----------------------------------
  4013.     This is similar to what you can do with the JACKIN operation, but it
  4014.     is specific to a single buffer. The intent is to allow an ARexx script
  4015.     to create a new buffer which is NOT the primary buffer, and begin
  4016.     working on it without getting in the user's way; the user can continue
  4017.     to work normally, yet this other buffer is "happening"; for instance a
  4018.     ray tracer can render right into it while you do other things. Here
  4019.     are the relevant commands:
  4020.     
  4021.                     UNPLUG <plugpointer>
  4022.       plugpointer = PLUGIN <buffer number>
  4023.     
  4024.     which returns a pointer to a structure as follows:
  4025.     
  4026.                    struct plugina
  4027.                      {
  4028.                        struct jackinbuff *buffer;
  4029.                        unsigned char id[4];       / * 'P','L','U','G' * /
  4030.                      };
  4031.     
  4032.     ...where "buffer" points to:
  4033.     
  4034.                    struct jackinbuff
  4035.                      {
  4036.                        unsigned char *red;
  4037.                        unsigned char *green;
  4038.                        unsigned char *blue;
  4039.                        unsigned char *mask;
  4040.                        unsigned short x;
  4041.                        unsigned short y;
  4042.                      };
  4043.     
  4044.     The expected sequence of operations is to allocate a buffer, PLUGIN to
  4045.     it, LOCK it, do stuff to it, and finally UNLOCK it.
  4046.     
  4047.     Before you use a "plugina" structure, you should check the "id" array
  4048.     and make sure that the four characters P, L, U and G are in positions
  4049.     0, 1, 2 and 3. If not, the structure isn't valid and your command
  4050.     should fail with a warning to the user.
  4051.     
  4052.                                  ----------
  4053.                                    -67-                                    
  4054.     Structures
  4055.     ----------
  4056.     If you are working with the Public Interface, you'll find these
  4057.     structures useful:
  4058.     
  4059.     /*
  4060.      * Structure that represents each buffer in IM
  4061.      */
  4062.     struct rgbu
  4063.       {
  4064.         unsigned char *red;     /* X by Y size array */
  4065.         unsigned char *green;   /* X by Y size array */
  4066.         unsigned char *blue;    /* X by Y size array */
  4067.         unsigned char *mask;    /* X by Y size array (?null?) */
  4068.         unsigned short x;       /* X size */
  4069.         unsigned short y;       /* Y size */
  4070.       };
  4071.     
  4072.     The rgbu structure represents the data built for you about each of the
  4073.     buffers (Primary, Secondary, Brush, Blend, Undo). In the case of the
  4074.     UnDo buffer, the mask pointer will always be NULL.
  4075.     
  4076.     The red, green and blue pointers point to a linear array of unsigned
  4077.     bytes where 0 is fully dark, and 255 is fully bright for that color.
  4078.     
  4079.     The mask pointer, if present, points to an array of unsigned bytes
  4080.     that will contain non-zero values where the image exists, and zero
  4081.     where it does not. If you write image data in regions of the red,
  4082.     green and/or blue buffers that is masked (mask is zero), the user will
  4083.     never see it.  The memory is there and you may write in it if you feel
  4084.     you have a good reason (temporary storage?).
  4085.     
  4086.     The x and y values represent the x and y dimensions of the buffer.
  4087.     Buffer data is arranged X first, then Y. If an image is 320 by 200,
  4088.     the first pixel of the first line is at offset 0 in the buffer; the
  4089.     second pixel in the third line is at offset 961. You can locate pixel
  4090.     data using the following formula, where ``x'' is the width, Y is the
  4091.     current Y position and ``X'' is the current X position:
  4092.     
  4093.         p = (Y * x) + X
  4094.     
  4095.     This should be all the information you need to utilize the data in the
  4096.     rgbu structure.
  4097.     
  4098.                         <continued next page>
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.                                    -68-                                    
  4113.     /*
  4114.      * Represents the main info struct in IM
  4115.      */
  4116.     struct jacker
  4117.       {
  4118.         struct rgbu *pr;        /* Primary Buffer */
  4119.         struct rgbu *se;        /* Secondary Buffer */
  4120.         struct rgbu *un;        /* UnDo Buffer */
  4121.         struct rgbu *bl;        /* Blend Buffer */
  4122.         struct rgbu *br;        /* Brush Buffer */
  4123.         unsigned char *msk;     /* User Mask (Primary-size) */
  4124.         char jack[4];           /* verify: chars J,A,C,K */
  4125.         struct Screen *showscr; /* screen of gadget panel */
  4126.         unsigned char pname[4]; /* processor name: 'IP'00 'IM'00 or 'IMFC' */
  4127.         long ver;               /* version of the program */
  4128.       };
  4129.     
  4130.     The jacker structure contains only two types of data.
  4131.     
  4132.     First, there is a group of pointers to the various rgbu structures
  4133.     that represent the state of those buffers within the system.  If one
  4134.     of these pointers is NULL, then that buffer does not currently exist.
  4135.     
  4136.     Next, there is a pointer to a mask. This mask is always the same size
  4137.     as the Primary buffer; it will only exist if there is a Primary
  4138.     buffer; and as a result, you can get the X:Y size of the mask by
  4139.     examining the X:Y sizes specified in the rgbu structure for the
  4140.     Primary buffer.
  4141.     
  4142.                                  ----------
  4143.     
  4144.     PI Module Code Examples
  4145.     =======================
  4146.     The following code fragment assumes the use of the above structures.
  4147.     It is the beginning of a CLI command which accepts the pointer passed
  4148.     in from the ARexx script fragment shown, and then checks for
  4149.     reasonable values in the structures.
  4150.     
  4151.     There is an additional item in the jacker structure which is a short
  4152.     character array that is loaded with the four ASCII characters J, A, C
  4153.     and K. This is not documented in the manual, but it is there in all
  4154.     cases and you should ALWAYS check for it before assuming that
  4155.     everything is ok to proceed.
  4156.     
  4157.                         <continued next page>
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.                                    -69-                                    
  4172.     You should always do this, or it's equivalent, when beginning a
  4173.     process operation upon the primary buffer:
  4174.     
  4175.     void main(argc,argv)
  4176.       int argc;
  4177.       char *argv[];
  4178.       {
  4179.       int tot,i;
  4180.       struct jacker *j;
  4181.       unsigned short dx,dy,x,y;
  4182.         if ((argc != 2) || (strcmp(argv[1],"?")==0))
  4183.           {
  4184.             printf("%d arguments...\n",argc-1);
  4185.             printf("Requires one argument:\n\n");
  4186.             printf("'JACKIN' hex pointer\n\n");
  4187.             exit(1);
  4188.           }
  4189.         sscanf(argv[1],"%x",(int *)&j); /* *jackin */
  4190.         if (j->pr == 0)
  4191.           {
  4192.             printf("No Primary Buffer!\n");
  4193.             exit(2);
  4194.           }
  4195.         if ((j->pr->x == 0) || (j->pr->y == 0)) /* bad */
  4196.           {
  4197.             exit(3);
  4198.           }
  4199.         if (j->jack[0] != 'J') exit (4);  /* check sanity */
  4200.         if (j->jack[1] != 'A') exit (5);
  4201.         if (j->jack[2] != 'C') exit (6);
  4202.         if (j->jack[3] != 'K') exit (7);
  4203.         /*
  4204.          * We got here, so there IS a primary
  4205.          * buffer. We can now proceed...
  4206.          */
  4207.     
  4208.     The previous example used a value passed by the following ARexx
  4209.     code fragment:
  4210.     
  4211.         address 'IM_Port'; /* talk to the image processor */
  4212.         options results;   /* allow replies */
  4213.         'jackin';          /* get pointer to structs */
  4214.         jackadr = result;  /* copy return value */
  4215.         options;           /* disallow replies */
  4216.         'wbtofront';       /* bring WorkBench up */
  4217.         address command 'c:ccpr '||jackadr; /* send... */
  4218.     
  4219.     This ARexx fragment, or something extremely similar to it, is what you
  4220.     use to send the Public Interface pointer to your custom process, image
  4221.     reader, or image render program.
  4222.     
  4223.     Note that in combination with the other ARexx commands for panels,
  4224.     file requesters, area control specifiers and so on you can create a
  4225.     great deal of the required logic for your tool(s) using nothing more
  4226.     than the ARexx interface. There is a complete example of a "process"
  4227.     type of PI Module on the release disks, with SAS C source code, ARexx,
  4228.     and linkable object modules which provide progress bar indication and
  4229.     control panel based message services.
  4230.                                    -70-                                    
  4231.     Changes List (from v7.00 onwards)
  4232.     =================================
  4233.     The following information provides a terse list of changes applied to
  4234.     each revision of the image processors listed. For details, refer to
  4235.     the text in the preceeding sections. The most recent changes are at
  4236.     the end of the list.
  4237.  
  4238.     When reading the changes list, you can interpret items which have a
  4239.     leading (+) symbol to be features added; items which have a leading
  4240.     (-) symbol are items which have been removed or bugs we've fixed.
  4241.  
  4242.     v7.00
  4243.     -----
  4244.     + New ARexx command 
  4245.          'listreq "Title text",listfile,"keywords,etc"'
  4246.  
  4247.       If there is more than one keyword they should be put inside
  4248.       double quotes but separated by spaces or commas.
  4249.  
  4250.     + All new buffer creation operations that can have a choice for
  4251.       the destination bring up    . New as Secondary
  4252.                                   . New as Brush
  4253.                                   . New as Blend
  4254.       and when an existing buffer can be replaced, there is also
  4255.                                   . Old as Secondary (Hold Primary)
  4256.                                   . Old as Brush     (Hold Primary)
  4257.                                   . Old as Blend     (Hold Primary)
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.                                    -71-                                    
  4290.     v7.01
  4291.     -----
  4292.     + Change to ARexx command   DISPLAYMODE <mode> [lace] [quality]
  4293.          in IP only           modes are 0 = luma
  4294.                                         1 = avg
  4295.                                         2 = reg Ord Dither
  4296.                                         3 = HAM-E 24
  4297.                                         4 = HAM-E 18
  4298.                                         5 = EDD 256 colors
  4299.                               lace      0 = non-lace
  4300.                                         1 = lace display
  4301.                               quality   0 = normal
  4302.                                         1 = high quality
  4303.  
  4304.     - Now all display mode changes intelligently do not re-allocate
  4305.       display screen. Helps reduce memory fragmentation problems
  4306.  
  4307.     + Image composition Logical And
  4308.  
  4309.     + Image composition Logical Or
  4310.  
  4311.     + New compose operation Add as Cyan     (from color separation)
  4312.       and ARexx command 'addasc'
  4313.  
  4314.     + New compose operation Add as Magenta  (from color separation)
  4315.       and ARexx command 'addasm'
  4316.  
  4317.     + New compose operation Add as Yellow   (from color separation)
  4318.       and ARexx command 'addasy'
  4319.  
  4320.     + New compose operation Add as Black    (from color separation)
  4321.       and ARexx command 'addask [ucr] [gcr]'
  4322.       These <ucr> <gcr> values are the user's best estimates of what
  4323.       was used to create the separation and only the ratio
  4324.       is significant.  Normally they are  64, 64.
  4325.       If they are ommitted then the program supplies the last
  4326.       values it used, so separating and reloading will work simply.
  4327.  
  4328.     + New ARexx command 'WHITEN' which makes the primary image all white
  4329.       (faster than newbuf can)
  4330.  
  4331.     + New ARexx command 'VERSION' which returns the version,revision
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.                                    -72-                                    
  4349.     v7.02
  4350.     -----
  4351.     + Compose Morph screen and operations enabled for release
  4352.  
  4353.     + New File I/O buttons    'Set Render Mode'
  4354.                               'Set Render Size'
  4355.                               'Set Dither Type'
  4356.       And 'Render to File' just asks for area select
  4357.  
  4358.     + Dither types added are   No Dither
  4359.                                Normal Edd
  4360.                                Floyd-Steinberg
  4361.                                Jarvis,Judice,Ninke
  4362.                                Stucki
  4363.     + Lace gadget in Render Size panel now changes the Vertical Size
  4364.  
  4365.     + Amiga mode renders now update the paint palette with the
  4366.       rendered palette.
  4367.       So that before rendering   'PALETTELOAD name'     will load colors
  4368.       and after rendering        'SAVEPAL name'  will save rendered colors
  4369.       Note! All renders from ARexx always took note of the <usepalette>
  4370.       parameter which causes the renders to use colors from the palette.
  4371.  
  4372.     + File I/O panel now has a 'Set Render Mode' option.
  4373.       The Render to File operation no longer asks about render settings.
  4374.  
  4375.     + Aspect ratio is now saved with rendered images, and
  4376.       all IFF file loading sets the aspect ratio of the incoming image.
  4377.  
  4378.     + Renders to IFF with more than 100 colors use Ben's Spectral method
  4379.       less colors use Barry's method.
  4380.  
  4381.     + IP 'gate" enabled for release. Only HAM-E owners will now be
  4382.       able to use IP, as we originally intended.
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.  
  4391.  
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.                                    -73-                                    
  4408.     7.03:
  4409.     -----
  4410.     + Dither Type panel provides 'Left->Right Error Prop'
  4411.                               or 'Serpentine  Error Prop'
  4412.  
  4413.     - 16 color Hi-Res Render and 32 color Lo-Res render had their
  4414.       vbar titles swapped. Fixed.
  4415.  
  4416.     + New dither methods       Random F-S
  4417.                                Dual Random F-S
  4418.  
  4419.     + Excursion limit gadget now in dither panel
  4420.  
  4421.     + Render and Morph path and settings now get saved with default file
  4422.  
  4423.     + Chekov Forcing in dither panel added. Significant render improvements
  4424.       are possible using this option in low color renders
  4425.  
  4426.     + Match Image Size in Render Size panel sets props
  4427.  
  4428.     + DCTV 1.1 images can now be read as well as 1.0 and library generated ones
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.  
  4444.  
  4445.  
  4446.  
  4447.  
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.                                    -74-                                    
  4467.     7.04:
  4468.     -----
  4469.     + New compose operation Add as Red     (from color separation)
  4470.       and ARexx command 'addasr'
  4471.  
  4472.     + New compose operation Add as Green     (from color separation)
  4473.       and ARexx command 'addasg'
  4474.  
  4475.     + New compose operation Add as Blue     (from color separation)
  4476.       and ARexx command 'addasb'
  4477.  
  4478.     + You can now select rendering as the output of the morph capability
  4479.       instead of only 24-bit files. Uses the current render settings
  4480.  
  4481.     - Panning in IP would confuse at the bottom edge, fixed
  4482.  
  4483.     - Changing display in IP from non-lace to lace when panned to the 
  4484.       bottom sometimes crashed.
  4485.  
  4486.     + Auto-Activate control in Display control panel for multitasking
  4487.       friendly operations. If Auto-Activate is off, no window will
  4488.       activate and no screen will come to the front automatically.
  4489.  
  4490.     - In Morph sequence after the 'Total Frames' is decreased to less
  4491.       than the 'End Frame', the end frame was reset to one too high.
  4492.  
  4493.     + Special keystroke operation 'C' now saves the canvas to disk
  4494.       as an IFF in most areas of the program. Special keystroke 'G'
  4495.       still active for all gadget panels.
  4496.  
  4497.     - Special keystroke operation 'P' (show display palette) is only
  4498.       active when an image has just been drawn in the canvas.
  4499.  
  4500.     + File requester now <selects> when return is hit in the file name
  4501.       gadget. Also, pressing return in the path and extension gadgets does
  4502.       not blank the other fields. The next active gadget then becomes the
  4503.       file name gadget.
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.                                    -75-                                    
  4526.     8.00:
  4527.     -----
  4528.     + 68030 and FPU version of IM, IMFC and IP now available
  4529.  
  4530.     + Sequence Processor added for multiple image handling
  4531.  
  4532.     + Shadow generation added to all compose operations
  4533.  
  4534.     + Morph processor can now tack down image edges
  4535.  
  4536.     + Filmstrip capability added
  4537.  
  4538.     + ARexx command "finish" added for sequence processor
  4539.  
  4540.     + ARexx command "tween" added for sequence processor
  4541.  
  4542.     + Panel may now be hidden during progress bar activities (right mouse)
  4543.  
  4544.     + Caricature operation now has "effect" control as well as radius
  4545.  
  4546.     + Dome operation now has "effect" control as well as radius
  4547.  
  4548.     + Caricature ARexx macro now has extra parameter for effect (def to 100%)
  4549.  
  4550.     + Dome ARexx macro now has extra parameter for effect (def to 100%)
  4551.  
  4552.     + GIF reader taught how to deal with faulty image size info
  4553.  
  4554.     - Errors from 7.02 onwards in 256 color image generation fixed
  4555.  
  4556.     - ARexx oval and rect commands fixed
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.  
  4563.  
  4564.  
  4565.  
  4566.  
  4567.  
  4568.  
  4569.  
  4570.  
  4571.  
  4572.  
  4573.  
  4574.  
  4575.  
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.                                    -76-                                    
  4585.     8.01:
  4586.     -----
  4587.     - Error that caused 68000 version of 8.00 to crash instantly
  4588.       if the user attempted to morph fixed
  4589.  
  4590.     - A number of "enforcer hits" fixed, all harmless (byte reads from low
  4591.       memory)
  4592.  
  4593.     - Bug that caused 250 ms delay (1/4 second) each time a morph
  4594.       point was added in a 3000-class machine fixed
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.  
  4629.  
  4630.  
  4631.  
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.                                    -77-                                    
  4644.     8.02:
  4645.     -----
  4646.     + Balance to Color in process panel
  4647.  
  4648.     + The File I/O panel now allows render settings to be changed even
  4649.       when no buffer is loaded. Inappropriate gadgets are ghosted.
  4650.  
  4651.     + Render and Save as 24-bit can both be selected in multi-frame
  4652.       processor
  4653.  
  4654.     + Load and save main mask
  4655.     + ARexx commands 'loadmask <complete_filename> [mode]'
  4656.                          mode   1 = Replace existing mask (default) 
  4657.                                 2 = OR
  4658.                                 3 = AND
  4659.                                 4 = XOR
  4660.                                 5 = MINUS
  4661.  
  4662.       ...and 'savemask <complete_filename>'
  4663.  
  4664.     + Load and save image mask
  4665.     + ARexx commands 'loadimask <complete_filename> [mode]'
  4666.                          mode   1 = Replace existing mask (default) 
  4667.                                 2 = OR
  4668.                                 3 = AND
  4669.                                 4 = XOR
  4670.                                 5 = MINUS
  4671.       If the image does not already have a mask, [mode] is forced to 1
  4672.  
  4673.       ...and 'saveimask <complete_filename>'
  4674.  
  4675.     + Amiga draw modes in IM improved
  4676.  
  4677.     + ARexx command 'imageaspect <picnum>' reports aspect ratio
  4678.  
  4679.     + Multi-frame processor has 'Execute Using Primary'
  4680.  
  4681.     - Cancel in multi-frame processor now resets the 'finish' status
  4682.  
  4683.     - The script in the multi-frame processor was clipping in the
  4684.       wrong place and clipping in this panel could disturb the actual
  4685.       script and path strings
  4686.  
  4687.     - Trying to run the multi-frame processor without a script is
  4688.       handled with a message
  4689.  
  4690.     - Dome and caricature could not handle large negative effect amounts
  4691.       that can be passed from ARexx
  4692.  
  4693.     - Number of frames was not being reset in display panel after a
  4694.       new film strip was loaded
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.                                    -78-                                    
  4703.     9.00:
  4704.     -----
  4705.     + Process panel and sub-panel reorganization
  4706.  
  4707.     + Compose panel reorganization
  4708.  
  4709.     + User can now select either the 2.0 (ASL) file requester or the
  4710.       Black Belt Systems file requester, as they prefer. Khalid
  4711.       Aldoseri's ASL replacement file requester has also been tested and
  4712.       now works with this software. ARexx supported.
  4713.  
  4714.     + "Zoom Clip" operation added. Provides a scaled zoom into the
  4715.        primary image. ARexx supported.
  4716.  
  4717.     + The font list requester can now handle fonts with names
  4718.       (including the point size) up to 46 characters in length
  4719.  
  4720.     + Sort directory list button in Multi-frame Processor allows
  4721.       you to optionally sort the list of files
  4722.  
  4723.     + Info button put back into main panel for ease of access
  4724.  
  4725.     + Color Separation button in File I/o panel moved to the second line
  4726.       so that all render controls would locate in the first line
  4727.  
  4728.     - Numerous small bug fixes applied.
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.                                    -79-                                    
  4762.     9.01:
  4763.     -----
  4764.     - problem when calling FR from ARexx with new requesters only
  4765.  
  4766.  
  4767.  
  4768.  
  4769.  
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.  
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.                                    -80-                                    
  4821.     9.02:
  4822.     -----
  4823.     - Jarvis and Stucki dither were broken
  4824.  
  4825.     - The Info gadget needed to be ghosted when IP started until the
  4826.       code is entered
  4827.  
  4828.     - Zoom Clip prop gadgets would drop percent by 1 on re-entry
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.                                    -81-                                    
  4880.     9.03:
  4881.     -----
  4882.     
  4883.     - Radial Wave ran out of precision in images higher than 400 lines
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.  
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.                                    -82-                                    
  4939.     9.04:
  4940.     -----
  4941.     + Entire image area selection made about 4 times faster
  4942.     
  4943.     - Radial Wave, Dome, and Caricature were unprotected against
  4944.       zero wavelengths/radius passed from ARexx
  4945.       
  4946.     - Radial wave prop gadgets got thrown back to zero after being
  4947.       last set at max
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.  
  4975.  
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997.                                    -83-                                    
  4998.     9.05:
  4999.     -----
  5000.     + The multi-frame and morph sequencer can now both handle four scripts:
  5001.     
  5002.                          (1) Opening      before all frames.
  5003.                    :--   (2) Pre-render   after image load or morph + ops,
  5004.              loop  |                      but prior to the save or render.
  5005.                    :--   (3) Post-render  after each render.
  5006.                          (4) Closing      after all frames.
  5007.       
  5008.       Any of these script names may be blank and will then be skipped. If
  5009.       any script exists, you MUST complete it with a 'finish'; command!
  5010.       The objective here is to allow you to create a "setup" script, a "do
  5011.       the job" script, a "clean up" script, and a "finish everything"
  5012.       script. We have used this to build in a complete ANIM generator...
  5013.       
  5014.         rxpi:animwr1.rexx - for the "setup" script
  5015.         [optional script] - for the "do the job" script
  5016.         rxpi:animwr3.rexx - for the "clean up"  script
  5017.         rxpi:animwr4.rexx - for the "finish everything" script
  5018.       
  5019.       ...for any set of effects you run in the sequence processor or the
  5020.       morph generator. For just morphing or rendering, you won't need to
  5021.       use a "do the job" script. The morphed output from a sequence
  5022.       becomes the current buffer temporarily. The displaced current buffer
  5023.       and the old secondary buffer are locked until they are returned
  5024.       after the sequence.
  5025.  
  5026.     + The gadget panel can be displayed in lace via a default settings
  5027.       button (you have to set it, save defaults, and then restart)
  5028.       
  5029.     + ARexx command 'setpalette <pos> <red> <green> <blue>' added
  5030.     
  5031.     + Aspect ratios default to 44 / 52 rather than 10 / 11
  5032.     
  5033.     + Render Palette from Image now uses the A method
  5034.       for number of colors under 100 and B method over 100
  5035.       
  5036.     + New Process/Special Effect - 'Render Palette for Amiga Ham'
  5037.  
  5038.     - When a non-primary buffer is being rendered, the 'Selected Area'
  5039.       should be automatically set to 'entire', and if 'Match Image Size'
  5040.       is selected then output resolution is set to the full image size
  5041.       
  5042.     - Color assignment for 16 color Hi-res just after image colors had
  5043.       been mostly but not radically changed, were sometimes throwing in
  5044.       a strange color causing renders to be noisy.
  5045.       
  5046.     - 16 color Hi-Res and 32 color Lo-Res gadgets in render mode panel
  5047.       were inverted text-wise - cosmetic change only for panel
  5048.       
  5049.     - Render from ARexx would not render sometimes
  5050.     
  5051.     - Morph and multi-frame sequence now appends .0001,.0002,.. to
  5052.       output filenames instead of "_" character + number
  5053.       
  5054.     - Clip with exact size will now remember its parent
  5055.  
  5056.                                    -84-                                    
  5057.     9.06:
  5058.     -----
  5059.     - Cancelling the multi-frame processor will replace the displaced
  5060.       buffers
  5061.  
  5062.     + The multi-frame processor can run without any scripts at all
  5063.  
  5064.     - When rendering from the multi-frame process the entire area
  5065.       is marked for rendering
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.                                    -85-                                    
  5116.     9.07:
  5117.     -----
  5118.     - Color preview not showing when the gadget panel is in lace
  5119.     
  5120.     - Define color from composition panel was not running
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.  
  5132.  
  5133.  
  5134.  
  5135.  
  5136.  
  5137.  
  5138.  
  5139.  
  5140.  
  5141.  
  5142.  
  5143.  
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  
  5153.  
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160.  
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.                                    -86-                                    
  5175.     9.08
  5176.     ----
  5177.     + Post-render Script gets passed three parameters instead of two, used
  5178.       in the animation writer for the sequence processor and morph tools;
  5179.       they are:
  5180.       
  5181.           thisframe totalframes "renderfilename"
  5182.           
  5183.       NOTE: The ANIM generation tools MUST be run using 9.08 or later;
  5184.             they require this particular capability and will not operate
  5185.             properly on earlier versions of the image manipulation s/w.
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192.  
  5193.  
  5194.  
  5195.  
  5196.  
  5197.  
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.                                    -87-                                    
  5234.     9.09
  5235.     ----
  5236.     + VERY IMPORTANT For Image Professional Users!!! In Image Professional,
  5237.       the ARexx port name has been CHANGED from "IP_Port" to "IM_Port"!
  5238.       For all of our scripts, this should cause no problem, as they have
  5239.       been written (up to this date) to use either the IP_Port name or the
  5240.       IM_Port name. From now on, we will write ONLY for the IM_Port name.
  5241.       This will simplify many ARexx scripts, and will ensure that third-
  5242.       party scripts have fewer problems between the various versions of
  5243.       our image manipulation software. At this point, Imagemaster,
  5244.       Imagemaster F/c and Image Professional ALL have the same port name.
  5245.     
  5246.     + Many new PI Module capabilities (see PI_EXEC.DOC from the PI
  5247.       disk or the PIE.LZH archive for telecomm updates)
  5248.     
  5249.     + New capabilities which provide for automatic display updating
  5250.       on external/additional display dedvices. FC24 PI Module
  5251.       updated to utilize this capability. Display updating is
  5252.       very efficient, information on the rectangular sub-region that
  5253.       was changed is used to limit display refreshes.
  5254.  
  5255.     + Added ANIM writer capability (this also requires latest PI Mods)
  5256.  
  5257.     + If the morph generator is not calling any scripts, it will
  5258.       not redraw the main display for each frame (this saves time).
  5259.     
  5260.     + Roll image geometric process added 
  5261.  
  5262.     - Palette from image operation would disturb the display. This
  5263.       has been fixed.
  5264.  
  5265.     - Bug where Image Professional only could not always reach the
  5266.       bottom scan line of an image using the area selection tools
  5267.       such as rectangle. Fixed.
  5268.     
  5269.     - ASKPROP ARexx command would not return values larger than
  5270.       four digits. Fixed.
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.                                    -88-                                    
  5293.     9.10
  5294.     ----
  5295.     + Random dither now has luma mode; this is a VERY nice addition
  5296.       to the random dither effect - try it and see!
  5297.     
  5298.     + Pressing 'r' when the morph display is on will redraw the
  5299.       two morph windows as well as the control points
  5300.     
  5301.     + Added "Exclude Black" button to histograms... this has the effect
  5302.       of amplifying the histogram by removing what is often a high
  5303.       content, but low-information portion of the histogram data.
  5304.     
  5305.     + Select ALL button added to sequence processor
  5306.     
  5307.     + Filmstrip frames are now numbered
  5308.     
  5309.     + Added "reverse" animation button to filmstrip controls
  5310.     
  5311.     + You can now delete filmstrip frames by number
  5312.     
  5313.     + You can now insert filmstrip frames by number
  5314.     
  5315.     + You can now swap filmstrip frames by number
  5316.     
  5317.     + Filmstrip re-allocation is now non-destructive so that you may
  5318.       change the number of frames as a way to shorten or lengthen an
  5319.       existing filmstrip.
  5320.     
  5321.     - Loading images which did NOT have masks would not work properly
  5322.       as a brush.
  5323.     
  5324.     - Emboss positioning works better now
  5325.     
  5326.     + New ARexx commands 'emboss <contrast>'
  5327.                      and 'punch  <contrast>'
  5328.       Contrast is usually from 0 to 255.  A secondary image needs to
  5329.       be assigned, and an area selection should be made prior to the
  5330.       emboss or punch command.
  5331.       
  5332.     - Clip with exact size would miss the bottom line in Imagemaster
  5333.     
  5334.     - Imagemaster palette foreground/background selection could get
  5335.       confused
  5336.       
  5337.     - Certain "short" windows in the control panels would show a bit
  5338.       of underlying data because they were too short - we've added
  5339.       some height so that this harmless, but unsightly artifact is gone.
  5340.  
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.  
  5351.                                    -89-                                    
  5352.     9.11
  5353.     ----
  5354.     + The pointer is invisible when moving points in a morph
  5355.     
  5356.     + Filmstip now has speeds up to 30
  5357.     
  5358.     + Loading and saving filmstrips has progress bar
  5359.     
  5360.     + Redraw scripts are sent a 'finish' parameter when the redraw
  5361.       script option is turned off or the image processor ended
  5362.       
  5363.     + The Redraw script name cannot be changed while the redraw
  5364.       script option is ON.
  5365.  
  5366.     + New ARexx command 'pal' which reports 0 for NTSC 1 for PAL
  5367.     
  5368.     + New ARexx command 'autoprimary <mode>'
  5369.       mode = 0  new buffers do not become the primary unless there are none
  5370.       mode = 1     "        always become primary
  5371.       
  5372.     + DCTV renders go to 566 vertically if IM is in PAL
  5373.  
  5374.     - Dual Vertical and Horizontal Warp range could divide by zero
  5375.       when the area is 1 pixel wide
  5376.  
  5377.     - Undo in Imagemaster now takes care of the color space so that
  5378.       undo-ing to an image with a different palette will no longer
  5379.       break during partial redraws.
  5380.  
  5381.  
  5382.  
  5383.  
  5384.  
  5385.  
  5386.  
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  
  5410.                                    -90-                                    
  5411.     9.12
  5412.     ----
  5413.     + Pre-defined shape area selections!
  5414.           Area select panel now has -
  5415.              'Shape from Corner'
  5416.              'Shape Centered'
  5417.              'Load Shape'
  5418.       See EXAMPLE.ISH  for an example shape file format.
  5419.  
  5420.     - Perspective scale was not correctly using the image local mask
  5421.       when it existed
  5422.  
  5423.     - EXTRA_HALFBRITE flag was not being set in IFF saves
  5424.  
  5425.     - Area print allowed area to be 1 pixel past image right and bottom
  5426.       causing the wrong area to be printed
  5427.  
  5428.     - Drawing an elipse on a <= 2x2 image would crash
  5429.  
  5430.     - Palette and range screens would draw with the wrong colors when
  5431.       the main display was in 16-color HI-Res
  5432.  
  5433.     - Palette and range screens would disturb main canvas color
  5434.       redraw color space
  5435.  
  5436.     - Hue change window overwrote the left text field
  5437.  
  5438.     - New/From Blend/From Digiview selection shows below gadgets
  5439.  
  5440.     - Message window was also too short
  5441.  
  5442.     - Buffer rename window was also too short
  5443.  
  5444.     - Paint fill operations did not clear mask second time through
  5445.  
  5446.     - New buffer did not initialize to color if there was no primary
  5447.       buffer
  5448.  
  5449.     - 2-way vertical blend was not using lower transparency curve
  5450.       correctly
  5451.  
  5452.     - Map to range went past the range in bright areas
  5453.  
  5454.     - Workaround for DCTV overscan limit of 704 under AmigaDOS 2.0
  5455.  
  5456.     - Painting redraw in IM could redraw outside screen area
  5457.  
  5458.     - AmigaDOS file requester interface returned extension twice
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.                                    -91-                                    
  5470.     9.13
  5471.     ----
  5472.     + Distance Calculator in analysis panel. Converts distance measured
  5473.       (or typed in) between Inches, cm, picas, points,
  5474.       Horizontal pixels, and Vertical pixels.
  5475.       
  5476.     + Pad Canvas operation in Re-Sizing and Clipping in Process Panel
  5477.       pads the selected area to a new size allowing the user to
  5478.       position the clipped area in any of 9 arrangements.
  5479.       
  5480.     + 'padcanvas <Xsize> <Ysize> <Position> <NewName>'  ARexx command.
  5481.       It returns the buffer number.
  5482.       Xsize and Ysize are the dimensions of the new buffer,
  5483.       Position is 1 = Top Left
  5484.                   2 = Top Center
  5485.                   3 = Top Right
  5486.                   4 = Middle Left
  5487.                   5 = Middle Center
  5488.                   6 = Middle Right
  5489.                   7 = Bottom Left
  5490.                   8 = Bottom Center
  5491.                   9 = Bottom Right
  5492.      The Following is a working script :-
  5493.                     
  5494.                     /* ARexx example of PADCANVAS operation * /
  5495.                     address('IM_Port');
  5496.                     'entire';
  5497.                     options results;
  5498.                     'padcanvas 400 400 5 NewClip';
  5499.                     'newcurrent '||result;
  5500.                     exit 0;
  5501.  
  5502.     + Horizontal and Vertical Flip operations now work outside of and
  5503.       move the image local mask
  5504.       
  5505.     + Morph 'Drop Grid' button
  5506.     
  5507.     + Composition using color keying now keys the area before doing 
  5508.       transparency channel generation, so that the transparency edges
  5509.       follow the keyed area.
  5510.       
  5511.     + Filmstrip has a Color mode; Display control has 'Color Film'
  5512.       button just like 'Lace Film' (FILMVIEW 1.01 is required to
  5513.       view color filmstrips)
  5514.       
  5515.     + 'newbrush <bufferNumber>'   ARexx command selects a new brush
  5516.     
  5517.     + 'newblend <bufferNumber>'   ARexx command selects a new blend control
  5518.                                   buffer
  5519.  
  5520.                         <continued next page>
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.                                    -92-                                    
  5529. Imagemaster 9.13 changes, continued
  5530. -----------------------------------
  5531.  
  5532.     + The following LOADAS... ARexx commands all use the image path and
  5533.       extension that were set with 'IMAGEPATH' and 'IMAGEEXT' commands or
  5534.       last typed into IM's file requester, and return the buffer number of
  5535.       the new buffer.
  5536.       'loadasprimary <name>'      ARexx command loads an image file and
  5537.         makes it the primary.
  5538.         
  5539.     + 'loadassecondary <name>'    ARexx command loads an image file and
  5540.         makes it the secondary.
  5541.         
  5542.     + 'loadasbrush <name>'        ARexx command loads an image file and
  5543.         makes it the brush.
  5544.         
  5545.     + 'loadasblend <name>'        ARexx command loads an image file and
  5546.         makes it the blend control buffer.
  5547.         
  5548.     + Morph  Discrete Velocity Control
  5549.         The Morph panel has added :-
  5550.          .  'Set Point Velocity' button to set the associated velocity
  5551.              of each point;
  5552.          .  'Set VELs' to load or draw new velocity curves.
  5553.       The default velocity curve for control points is <normal>.
  5554.       The associated velocity curves are saved with the points file.
  5555.       Three standard Velocity curves are available at startup:
  5556.        <normal>, <early>, and <late>.  If these curves are changed by
  5557.        the user, they are no longer standard and will therefore be
  5558.        automatically saved with the points file.
  5559.        
  5560.     - Pointer remained busy after palette screen closure
  5561.     
  5562.     - Palette mapping did not do entire image area selection
  5563.     
  5564.     - Cut out brush in Paint Control with entire image or previous region
  5565.       was being ignored
  5566.       
  5567.  
  5568.  
  5569.  
  5570.  
  5571.  
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585.  
  5586.  
  5587.                                    -93-                                    
  5588.     9.14
  5589.     ----
  5590.    - Selecting display modes and then changing the mode in the display
  5591.      control panel caused the image to be scrambled
  5592.      
  5593.    - zoomclip ARexx command was not working if a previous region was
  5594.      not selected.
  5595.      
  5596.    - 'Unknown Internal error' messages replaced with meaningful
  5597.      messages
  5598.      
  5599.    - Exact image mode change was broken
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619.  
  5620.  
  5621.  
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.                                    -94-                                    
  5647.     9.15
  5648.     ----
  5649.    + New Enhance anti-alias operation available in morph controls
  5650.    
  5651.    + Morph view creation now done faster and subsequent redrawing
  5652.      or partial redrawing is very fast.
  5653.      
  5654.    + New 'Grp Vel' button added to morph controls which lets the user
  5655.      draw an area on either morph frame and set the velocity of all
  5656.      enclosed points. Therefore, 'Set Point Vel' button has been changed to
  5657.      'Pnt Vel'.  After selection, the changed points are highlighted.
  5658.      
  5659.    + Multi-frame processes retain the altered current buffer until
  5660.      after the post-render script. This has a huge effect on the ability to
  5661.      perform operations in the post-render phase; our new single-frame
  5662.      controller scripts use this capability.
  5663.      
  5664.    + New Area selection option 'Numeric Rectangle' which takes keyboard
  5665.      typed coordinates for the rectangle edges.
  5666.      
  5667.    + New: IM has 'Dither' setting in display control, so dither can be
  5668.      turned off
  5669.      
  5670.    + New: 'CANCEL' ARexx command equivalent to hitting the cancel button
  5671.      for use within multi-frame sequences, kills the sequences immediately.
  5672.    
  5673.    + Further anti-piracy mods made (only) to IP for thieves who were
  5674.      using ASDG's AdPro to steal the entry codes.
  5675.      
  5676.    + IP panning in 256 color mode is now much faster.
  5677.  
  5678.  
  5679.  
  5680.  
  5681.  
  5682.  
  5683.  
  5684.  
  5685.  
  5686.  
  5687.  
  5688.  
  5689.  
  5690.  
  5691.  
  5692.  
  5693.  
  5694.  
  5695.  
  5696.  
  5697.  
  5698.  
  5699.  
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.                                    -95-                                    
  5706. Imagemaster 9.15 changes, continued
  5707. -----------------------------------
  5708.  
  5709.    + 'Shape Add' button in morph adds control points at the corners
  5710.       of an ISHAPE. It is used as follows :
  5711.   
  5712.       (1) When in morph hit the 'Shape Add' button.
  5713.       
  5714.       (2) Use the requestor to choose an ISHAPE or cancel to retain
  5715.           the current one.
  5716.           
  5717.           (new Ovals/polygons with 3 to 95 points/sides are supplied in the
  5718.           IShapes drawer.)
  5719.           
  5720.       (3) Click and drag with the left mouse button in either view
  5721.           area to size and position the shape over the feature you
  5722.           want.  Holding down the right mouse button at the same time
  5723.           will move the shape.
  5724.           
  5725.       (4) When you release the left mouse button, the shape will be 
  5726.           duplicated in the other view area.
  5727.           
  5728.           The shape has an orientation arrow shown on it.  
  5729.           Click with the left mouse button in this other view area and
  5730.           position it on the matching feature.
  5731.           
  5732.           Its orientation arrow will follow the cursor. You should
  5733.           (normally) make the arrow point the same way in each view, because
  5734.           Morph is going to use each corner in order.
  5735.           
  5736.       (5) When you release the left mouse button this time, morph control
  5737.           points will be placed at the corners of the shape.
  5738.  
  5739.    - IP (only) was confused when panning in exact image mode.
  5740.    
  5741.    - Morph one frame came out with bad display
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764.                                    -96-                                    
  5765.     9.16
  5766.     ----
  5767.     + Button in Setup panel to switch MEMF_PUBLIC off, to help virtual
  5768.       memory managers.
  5769.  
  5770.     + In Morph 'Zoom' button, used as follows:
  5771.     
  5772.          . When in Morph press the Zoom button
  5773.          
  5774.          . Draw a rectangular area to zoom in to, on either
  5775.            the left or right frame.  Holding down the right mouse
  5776.            button while drawing will reposition the zoom rectangle.
  5777.            
  5778.          . Click on the Zoom button to undo the magnify.
  5779.          
  5780.       While in the zoomed state the arrow keys can be used to pan.
  5781.       
  5782.         The L key will isolate panning to the Left frame.
  5783.         The R key will isolate panning to the Right frame.
  5784.         The B key will allow panning to both frames.
  5785.         The < key will also reduce the amount of zoom 25%.
  5786.         The > key will increase the amount of zoom 25%.
  5787.  
  5788.     - The amount of image redrawn when moving a point in Morph is
  5789.       reduced.
  5790.  
  5791.     - In IP; Hi-Quality mode was switched off for Exact Image display.
  5792.       IP did not correctly draw in Exact Image / Hi-quality HAM-E
  5793.       mode.  If the HiQ switch-off was over-ridden, leaving exact 
  5794.       image mode could disturb entire image HiQ redraws. Fixed.
  5795.  
  5796.     - Panning large images (>640 wide) in Exact Image mode would not
  5797.       move all the way to the edge (IP & IM). Fixed.
  5798.     
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.                                    -97-                                    
  5824.     9.17
  5825.     ----
  5826.     + New morph engine; faster, (about 2 minutes per broadcast resolution
  5827.       frame) and more accurate.
  5828.     
  5829.     + ARexx command 'actpri' reports the preserved old primary buffer
  5830.       during a multi-frame sequence.
  5831.  
  5832.     + Display in morph panels is 4-8x faster
  5833.     
  5834.     + New "onionskin" capability in morph
  5835.     
  5836.     + New arbitrarily curved control vectors in morph
  5837.     
  5838.     + Main document updated to contain PI information, "pi.doc" obsolete
  5839.     
  5840.     + PI Modules to support PageStream (Soft Logik) "HotLinks"
  5841.     
  5842.     + Ability to abort when Imagemaster is drawing (if this leaves
  5843.       you with a partially drawn display, press "R" to redraw the
  5844.       image. A much requested addition!
  5845.  
  5846.     + IV24 Display PI Module - updated, portions re-written in assembler
  5847.       for considerable speed improvement; also an ARexx port was added to
  5848.       facilitate its use with single frame controller scripts.  One ARexx
  5849.       command is supported, "QUIT". The port address is 'IMIV24'. This
  5850.       allows you to display an image and then kill it as soon as the
  5851.       single frame controller has recorded it. See the macros
  5852.       "setframe.rexx" and "postiv.rexx" in RXPI:, these go in the first
  5853.       and third script positions for the sequencer and/or the morph
  5854.       scripts.  This script works with the BCD 2000A SF controller. Note
  5855.       that you must run the supplied (by BCD) BCDARexxHandler program for
  5856.       this script to work.
  5857.  
  5858.     + Informative vector display is not done while morphing with the
  5859.       film strip showing.
  5860.  
  5861.     + Morphing Velocity control now also affects transparency.
  5862.       Areas of the image will have different transparency depending on
  5863.       neighboring control points' velocity curves.
  5864.  
  5865.     + 'Warp Morph' from the Process/Special Effects panel.
  5866.  
  5867.     + 'Add Points','Move Points','Delete Points' in the morph panel are 
  5868.       now combined in one cycle gadget
  5869.  
  5870.     + Transparency can be set per control point, or group of control points
  5871.       New buttons in morph panel:
  5872.            * 'Pnt Trn' for setting the transparency curve of the 
  5873.              hilighted point.
  5874.            * 'Grp Trn' for setting the transparency curve of points
  5875.              identified by drawing a lassoo around the group.
  5876.  
  5877.                 <continued next page>
  5878.  
  5879.  
  5880.  
  5881.  
  5882.                                    -98-                                    
  5883.     9.17 changes, continued...
  5884.     --------------------------
  5885.     + 'Set Controls' option in morph now also has buttons
  5886.       for choosing from a list of transparency curves.  The default
  5887.       curves are <normal>, <late>, and <early>.
  5888.  
  5889.     - DMI Resolver Display PI Module- crashing bug fixed.
  5890.  
  5891.     - Bug with ANIM reader PI module fixed where loading a frame
  5892.       would nuke the previous frame
  5893.     
  5894.     - Bug with CBM/Khalid requesters not parsing paths correctly
  5895.       fixed.
  5896.  
  5897.  
  5898.  
  5899.  
  5900.  
  5901.  
  5902.  
  5903.  
  5904.  
  5905.  
  5906.  
  5907.  
  5908.  
  5909.  
  5910.  
  5911.  
  5912.  
  5913.  
  5914.  
  5915.  
  5916.  
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.                                    -99-                                    
  5942.     .ish .......................................................... Page   3
  5943.     absolute resample ............................................. Page  31
  5944.     adding morph control points ................................... Page  18
  5945.     affects entire image, balancing ............................... Page  29
  5946.     and, logical composition ...................................... Page  33
  5947.     angle, of shadows ............................................. Page  10
  5948.     angled range (fill mode) ...................................... Page  43
  5949.     ANIM OP-5 ..................................................... Page   4
  5950.     ANIM PI reader ................................................ Page  47
  5951.     animations .................................................... Page   4
  5952.     Antialias, morphing ........................................... Page  21
  5953.     Arc Vectors ................................................... Page  23
  5954.     ARexx port name ............................................... Page  56
  5955.     ARexx simplification .......................................... Page  12
  5956.     Arguments, sequence processor ................................. Page  14
  5957.     ARZ0 PI reader ................................................ Page  47
  5958.     ARZ1 PI reader ................................................ Page  47
  5959.     autoactivate (ARexx) .......................................... Page  60
  5960.     automatic update display modules .............................. Page   5
  5961.     autoprimary (ARexx) ........................................... Page  63
  5962.     B&W filmstrips ................................................ Page  11
  5963.     background color setting ...................................... Page  39
  5964.     backuptoundo (ARexx) .......................................... Page  60
  5965.     batch operations .............................................. Page   4
  5966.     BBS number .................................................... Page   3
  5967.     black balancing ............................................... Page  30
  5968.     Blend loading (ARexx) ......................................... Page  25
  5969.     blend type combinations ....................................... Page  33
  5970.     Board Master PI reader ........................................ Page  47
  5971.     brush brick emboss (fill mode) ................................ Page  40
  5972.     brush emboss (fill mode) ...................................... Page  40
  5973.     Brush loading (ARexx) ......................................... Page  25
  5974.     brushes, transparent .......................................... Page  38
  5975.     capture, PI ................................................... Page  52
  5976.     caric (ARexx) ................................................. Page  58
  5977.     centering images .............................................. Page   2
  5978.     changes list .................................................. Page  71
  5979.     Chekov forcing ................................................ Page  32
  5980.     clipping, exact size .......................................... Page  27
  5981.     CMAP type, color separations .................................. Page  35
  5982.     co-ordinates .................................................. Page  26
  5983.     color balancing ............................................... Page  29
  5984.     Color filmstrips .............................................. Page  11
  5985.     color keying, for genlocking .................................. Page  37
  5986.     color recombinations .......................................... Page  36
  5987.     color separations ............................................. Page  34
  5988.     color zero, in genlocking ..................................... Page  37
  5989.     color, setting new buffer to .................................. Page  43
  5990.     constant effects in sequences ................................. Page  14
  5991.     constant palette .............................................. Page   4
  5992.     coords (ARexx) ................................................ Page  26
  5993.     coords (ARexx) ................................................ Page  57
  5994.     coords (ARexx) ................................................ Page  60
  5995.     curves, in morphs ............................................. Page  23
  5996.     custom shapes ................................................. Page   3
  5997.     dctv .......................................................... Page  38
  5998.     deleting morph control points ................................. Page  19
  5999.     DHRZ PI reader ................................................ Page  47
  6000.     Dilate PI Process ............................................. Page  52
  6001.     display elements, morph ....................................... Page  18
  6002.     display updating (external), automatic ........................ Page   5
  6003.     display, PI ................................................... Page  53
  6004.     displaymode (ARexx) ........................................... Page  62
  6005.     distance calculator ........................................... Page   2
  6006.     dither, in display ............................................ Page  44
  6007.     dither, random ................................................ Page  27
  6008.     dithering (in output renders) ................................. Page  32
  6009.     DKB Trace PI reader ........................................... Page  47
  6010.     DMI Resolver PI Display ....................................... Page  53
  6011.     dome (ARexx) .................................................. Page  58
  6012.     DPI operations ................................................ Page  43
  6013.     dragging and co-ordinates ..................................... Page  26
  6014.     dual ranges (fill mode) ....................................... Page  41
  6015.     Erode PI Process .............................................. Page  52
  6016.     ES-300c PI Capture ............................................ Page  52
  6017.     exact size clipping ........................................... Page  27
  6018.     exchanging morph points ....................................... Page  19
  6019.     fast ham draw mode ............................................ Page  43
  6020.     FC24 PI Display ............................................... Page  53
  6021.     FCHIDE (ARexx) ................................................ Page  56
  6022.     FCSHOW (ARexx) ................................................ Page  56
  6023.     filerequest (ARexx) ........................................... Page  56
  6024.     filmstrip ..................................................... Page  11
  6025.     finish (ARexx) ................................................ Page  13
  6026.     FITS reader ................................................... Page  48
  6027.     force dynamic ................................................. Page  30
  6028.     foreground color setting ...................................... Page  38
  6029.     format, user transform files .................................. Page  28
  6030.     fromdigiview (ARexx) .......................................... Page  57
  6031.     FR_CANCELLED .................................................. Page  56
  6032.     GCR (Grey Component Replacement) .............................. Page  34
  6033.     generating morph sequences .................................... Page  20
  6034.     genlocking tools .............................................. Page  37
  6035.     Graph PI Process .............................................. Page  52
  6036.     grid (ARexx) .................................................. Page  26
  6037.     grid (ARexx) .................................................. Page  57
  6038.     grid (ARexx) .................................................. Page  60
  6039.     grid .......................................................... Page  26
  6040.     Grouping, velocities .......................................... Page  21
  6041.     Hist PI Process ............................................... Page  51
  6042.     history, using the filmstrip .................................. Page  12
  6043.     HotLinks Info ................................................. Page  51
  6044.     Hotlinks Publish .............................................. Page  48
  6045.     HotLinks subscribe ............................................ Page  45
  6046.     HotLinks Update ............................................... Page  49
  6047.     IFF PI reader ................................................. Page  46
  6048.     image locking (ARexx) ......................................... Page  66
  6049.     image structures (ARexx) ...................................... Page  68
  6050.     imageaspect (ARexx) ........................................... Page  59
  6051.     info, about any buffer ........................................ Page  43
  6052.     Info, HotLinks ................................................ Page  51
  6053.     ink correction ................................................ Page  34
  6054.     install, pi modules ........................................... Page  44
  6055.     installation of PI modules .................................... Page  66
  6056.     intensity, of shadows ......................................... Page  10
  6057.     interlace, in morph work area ................................. Page  19
  6058.     introduction .................................................. Page   1
  6059.     ISH files, morphing ........................................... Page  21
  6060.     IV24 PI Display ............................................... Page  53
  6061.     JPEG PI reader ................................................ Page  46
  6062.     JPEG PI Writer ................................................ Page  49
  6063.     KOCH PI Process ............................................... Page  51
  6064.     library, DCTV ................................................. Page  38
  6065.     list requesters (ARexx) ....................................... Page  25
  6066.     lists, sequence ............................................... Page  13
  6067.     loadasblend (ARexx) ........................................... Page  63
  6068.     loadasbrush (ARexx) ........................................... Page  63
  6069.     loadassecondary (ARexx) ....................................... Page  63
  6070.     loadimask (ARexx) ............................................. Page  59
  6071.     loading morph point sets ...................................... Page  19
  6072.     loadmask (ARexx) .............................................. Page  59
  6073.     local mask .................................................... Page   9
  6074.     locking images (ARexx) ........................................ Page  66
  6075.     logical composition, and ...................................... Page  33
  6076.     logical or, composition ....................................... Page  33
  6077.     map to range .................................................. Page  28
  6078.     mapping, palette .............................................. Page  39
  6079.     masks ......................................................... Page   9
  6080.     masks, saving ................................................. Page  33
  6081.     Memory, Virtual ............................................... Page   2
  6082.     merge, with render from range ................................. Page  31
  6083.     Morph vectors, arcing ......................................... Page  23
  6084.     Morphing ...................................................... Page  17
  6085.     mouse position (ARexx) ........................................ Page  57
  6086.     moving morph control points ................................... Page  18
  6087.     names, ARexx port ............................................. Page  56
  6088.     NASA reader ................................................... Page  48
  6089.     new panels .................................................... Page   7
  6090.     newasprimary (ARexx) .......................................... Page  57
  6091.     newblend (ARexx) .............................................. Page  63
  6092.     newbrush (ARexx) .............................................. Page  63
  6093.     newbuf (ARexx) ................................................ Page  57
  6094.     newbuf command (ARexx) ........................................ Page  56
  6095.     noise, random ................................................. Page  27
  6096.     Numeric Area Select ........................................... Page  29
  6097.     octagons ...................................................... Page   3
  6098.     on-disk documentation ......................................... Page   1
  6099.     Onionskin, Morphing ........................................... Page  24
  6100.     or, logical composition ....................................... Page  33
  6101.     pad canvas .................................................... Page   2
  6102.     paint settings, saving ........................................ Page  39
  6103.     pal (ARexx) ................................................... Page  62
  6104.     palette mapping ............................................... Page  39
  6105.     panel organization ............................................ Page   7
  6106.     PCX PI reader ................................................. Page  47
  6107.     pentagons ..................................................... Page   3
  6108.     PI code examples (C and ARexx) ................................ Page  69
  6109.     PI modules (ARexx) ............................................ Page  66
  6110.     pi modules, install ........................................... Page  44
  6111.     plugging in (ARexx) ........................................... Page  67
  6112.     PMBC PI reader ................................................ Page  46
  6113.     PMBC PI Writer ................................................ Page  50
  6114.     point velocity ................................................ Page  21
  6115.     polyranges (fill mode) ........................................ Page  40
  6116.     process, PI ................................................... Page  51
  6117.     public interface (ARexx) ...................................... Page  66
  6118.     Public Memory ................................................. Page   2
  6119.     Publish, HotLinks ............................................. Page  48
  6120.     RAW PI reader ................................................. Page  46
  6121.     RAW PI Writer ................................................. Page  50
  6122.     readers, PI ................................................... Page  45
  6123.     recombinations, color ......................................... Page  36
  6124.     relative co-ordinates ......................................... Page  26
  6125.     render changes (ARexx) ........................................ Page  64
  6126.     render command parameters (ARexx) ............................. Page  56
  6127.     Render controls ............................................... Page  32
  6128.     Rendition Alpha PI reader ..................................... Page  46
  6129.     Rendition PI reader ........................................... Page  46
  6130.     Rendition PI Writer ........................................... Page  50
  6131.     resolution of separations ..................................... Page  34
  6132.     resolution, of morph .......................................... Page  20
  6133.     Resolver PI Display ........................................... Page  53
  6134.     respositioning shapes ......................................... Page   3
  6135.     RGB8 PI Writer ................................................ Page  51
  6136.     RGB8 reader ................................................... Page  47
  6137.     RGBN reader ................................................... Page  47
  6138.     roll modes .................................................... Page   6
  6139.     rollimage (ARexx) ............................................. Page   6
  6140.     rolling ....................................................... Page   6
  6141.     saveimask (ARexx) ............................................. Page  59
  6142.     savemask (ARexx) .............................................. Page  59
  6143.     savers, PI .................................................... Page  48
  6144.     saving morph points ........................................... Page  19
  6145.     scale ......................................................... Page  28
  6146.     scripts, sequencer ............................................ Page   4
  6147.     Secondary loading (ARexx) ..................................... Page  25
  6148.     sequence lists ................................................ Page  13
  6149.     sequence processor ............................................ Page  12
  6150.     sequencer scripts ............................................. Page   4
  6151.     set controls for morphing sequences ........................... Page  20
  6152.     setpalette (ARexx) ............................................ Page  61
  6153.     Shadows ....................................................... Page  10
  6154.     SHAM PI reader ................................................ Page  47
  6155.     shape add, morph .............................................. Page  21
  6156.     shapes ........................................................ Page   3
  6157.     single frame morphing ......................................... Page  20
  6158.     smooth edge blending .......................................... Page  33
  6159.     smooth range, in polyrange fills .............................. Page  40
  6160.     soft edges, on shadows ........................................ Page  10
  6161.     stars ......................................................... Page   3
  6162.     stretch ....................................................... Page  28
  6163.     structures, image (ARexx) ..................................... Page  68
  6164.     subscribe, HotLinks ........................................... Page  45
  6165.     swapping morph ordering ....................................... Page  19
  6166.     Targa PI reader ............................................... Page  47
  6167.     Targa PI Writer ............................................... Page  51
  6168.     tech support line ............................................. Page  66
  6169.     Tesselate PI Process .......................................... Page  52
  6170.     transforms, user .............................................. Page  28
  6171.     transparency, in genlocking ................................... Page  37
  6172.     transparent brushes ........................................... Page  38
  6173.     triangles ..................................................... Page   3
  6174.     tween command in sequencing ................................... Page  14
  6175.     UCR (Under Color Removal) ..................................... Page  34
  6176.     undo in ARexx ................................................. Page  60
  6177.     unlocking images .............................................. Page  67
  6178.     UPB8 reader ................................................... Page  48
  6179.     Update, HotLinks .............................................. Page  49
  6180.     user transforms ............................................... Page  28
  6181.     variable effects in sequences ................................. Page  14
  6182.     Vectors, Arc .................................................. Page  23
  6183.     Velocities, grouping .......................................... Page  21
  6184.     velocity, morph points ........................................ Page  21
  6185.     Virtual Memory ................................................ Page   2
  6186.     virtual resizing of masks ..................................... Page   9
  6187.     Vista Pro Binary PI Writer .................................... Page  50
  6188.     wheremouse (ARexx) ............................................ Page  57
  6189.     writers, PI ................................................... Page  48
  6190.     x-specs ....................................................... Page  27
  6191.     x-specs conversions ........................................... Page  30
  6192.     zoom .......................................................... Page   8
  6193.     Zoom, Morph Display ........................................... Page  22
  6194.     zoomclip (ARexx) .............................................. Page   8
  6195.     zooming, by scaling ........................................... Page  28
  6196.